DosQuerySysInfo
Appearance
DosQuerySysInfo
Syntax
rc = DosQuerySysInfo( ulStartIndex, ulLastIndex, pDataBuffer, ulDataBufferLength );
Parameters
- ULONG ulStartIndex (input)
- Index of the first info to query.
- ULONG ulLastIndex (input)
- Index of the last info to query. Equal to ulStartIndex if it is the only wanted info.
- PVOID pDataBuffer (output)
- Address to a data buffer to put the information in.
- LONG ulDataBufferLength (input)
- Size of pDataBuffer. Valid values for ulStartIndex and ulLastIndex
| No. | Name | Description | OS/2 Version |
|---|---|---|---|
| 1 | QSV_MAX_PATH_LENGTH | Maximum length of a path name (bytes). Use this when allocating filename buffers. | All |
| 2 | QSV_MAX_TEXT_SESSIONS | Maximum number of text sessions. | All |
| 3 | QSV_MAX_PM_SESSIONS | Maximum number of PM sessions. | All |
| 4 | QSV_MAX_VDM_SESSIONS | Maximum number of DOS sessions. | All |
| 5 | QSV_BOOT_DRIVE | Boot drive (1 = A:, 2 = B:, 3 = C, and so on). | All |
| 6 | QSV_DYN_PRI_VARIATION | Absolute(= 0)/Dynamic(= 1) priority. | All |
| 7 | QSV_MAX_WAIT | Maximum wait time (seconds). | All |
| 8 | QSV_MIN_SLICE | Minimum time slice allowed (milliseconds). | All |
| 9 | QSV_MAX_SLICE | Maximum time slice allowed (milliseconds). | All |
| 10 | QSV_PAGE_SIZE | Memory page size (bytes). Default 4096 bytes. | All |
| 11 | QSV_VERSION_MAJOR | Major version number. | All |
| 12 | QSV_VERSION_MINOR | Minor version number. | All |
| 13 | QSV_VERSION_REVISION | Revision letter. | All |
| 14 | QSV_MS_COUNT | Value of a 32-bit, free-running counter (milliseconds). Zero at boot time. | All |
| 15 | QSV_TIME_LOW | Low-order 32 bits of the time since January 1, 1980 (seconds). | All |
| 16 | QSV_TIME_HIGH | High-order 32 bits of the time since January 1, 1980 (seconds). | All |
| 17 | QSV_TOTPHYSMEM | Total number of bytes of physical memory. | All |
| 18 | QSV_TOTRESMEM | Total number of bytes of system-resident memory. | All |
| 19 | QSV_TOTAVAILMEM | Maximum number of bytes available for all processes in the system RIGHT NOW. | All |
| 20 | QSV_MAXPRMEM | Maximum number of bytes available for this process RIGHT NOW. | All |
| 21 | QSV_MAXSHMEM | Maximum number of shareable bytes available RIGHT NOW. | All |
| 22 | QSV_TIMER_INTERVAL | Timer interval (1/10 milliseconds). | All |
| 23 | QSV_MAX_COMP_LENGTH | Maximum length of one component in a path name (bytes). | All |
| 24 | QSV_FOREGROUND_FS_SESSION | Session ID of the current foreground full screen session. (any PM, VIO or Win-DOS session would be ID = 1). | Warp |
| 25 | QSV_FOREGROUND_PROCESS | Process ID of the current foreground process. | Warp |
| 26 | QSV_NUMPROCESSORS | Number of processors in the computer. | Warp |
Returns
- APIRET rc
- Indicates if any error occured.
| 0 | NO_ERROR |
| 87 | ERROR_INVALID_PARAMETER |
| 111 | ERROR_BUFFER_OVERFLOW |
Include Info
#define INCL_DOSMISC #include <os2.h>
Usage Explanation
DosQuerySysInfo queries different information about the system. and returns it in a buffer sent to it with the call.
Relevant Structures
Gotchas
Sample Code
ULONG aulBuffer[4];
APIRET rc;
rc = DosQuerySysInfo(QSV_VERSION_MAJOR, QSV_MS_COUNT,
(void *)aulBuffer, 4*sizeof(ULONG));
if(rc) {
printf("Error! DosQuerySysInfo returned %d.\n",rc);
return(-1);
}
else {
printf("You are running version %d.%d revision %c.\n",
aulBuffer[0], aulBuffer[1], (char) aulBuffer[2]);
printf("Your system has been running %d hour(s) and %d minute(s).\n",
aulBuffer[3]/3600000, (aulBuffer[3]%3600000)/60000);
}
See Also
Alternative
- OS2Linux has an replacement alternative for this function not test on OS/2. [1]