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 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