This is part of Family API which allow to create dual-os version of program runs under OS/2 and DOS

Note: This is legacy API call. It is recommended to use 32-bit equivalent

DosQSysInfo

This call returns values of static system variables.

Syntax

DosQSysInfo (Index, DataBuf, DataBufLen)

Parameters

Index (USHORT) - input : Ordinal of the system variable to return.

Index = 0 indicates maximum path length. The maximum path length is returned in the first word of the DataBuf.

DataBuf (PBYTE) - output : Address where the system returns the variable value.

DataBufLen (USHORT) - input : Length of the data buffer.

Return Code

rc (USHORT) - return:Return code descriptions include:

0 NO_ERROR

87 ERROR_INVALID_PARAMETER

111 ERROR_BUFFER_OVERFLOW

Remarks

An OS/2 application may want to reference file objects managed by an installable file system that supports long file names. Because some installable file systems may support longer names than others, an application should issue DosQSysInfo upon initialization.

DosQSysInfo returns the maximum path length supported by the file system currently installed. The path length includes the drive specifier (d:), the leading “\” and the trailing null character.

The value returned by DosQSysInfo can be used to allocate buffers for storing path names returned by requests, for example, to DosFindFirst and DosFindNext.

Bindings

C

#define INCL_DOSFILEMGR USHORT rc = DosQSysInfo(Index, DataBuf, DataBufLen); USHORT Index; /* Which variable */ PBYTE DataBuf; /* System information (returned) */ USHORT DataBufLen; /* Data buffer size */ USHORT rc; /* return code */

MASM

EXTRN DosQSysInfo:FAR INCL_DOSFILEMGR EQU 1 PUSH WORD Index ;Which variable PUSH@ OTHER DataBuf ;System information (returned) PUSH WORD DataBufLen ;Data buffer size CALL DosQSysInfo Returns WORD

Text based on http://www.edm2.com/index.php/DosQSysInfo

Family API
DOS	Process Manager	DosBeep DosExit DosSleep DosExecPgm
File Manager	DosChDir DosChgFilePtr DosClose DosDelete DosDupHandle DosMkDir DosMove DosQCurDir DosQCurDisk DosSetFileMode DosOpen DosQFileInfo DosRead DosQFileMode DosQFSInfo DosQVerify DosRmDir DosSelectDisk DosFindClose DosFindFirst DosFindNext DosSetFileInfo DosSetVerify DosWrite DosFileLocks DosSetFHandState DosNewSize DosBufReset DosQFHandState DosSetFSinfo DosShutdown
Memory Manager	DosFreeSeg DosSubAlloc DosSubFree DosSubSet DosAllocHuge DosAllocSeg DosReallocHuge DosReallocSeg DosGetHugeShift DosCreateCSAlias
NLS	DosCaseMap DosGetCtryInfo DosGetDBCSEv DosSetCtryCode DosGetCollate DosGetMessage DosInsMessage DosPutMessage
Date and Time	DosSetDateTime DosGetDateTime
Devices	DosDevConfig DosDevIOCtl DosDevIOCtl2
Signals	DosHoldSignal DosSetSigHandler
Misc	BadDynLink DosGetEnv DosGetMachineMode DosGetVersion DosError DosErrClass DosSetVec
KBD	KbdCharIn KbdFlushBuffer KbdGetStatus KbdSetStatus KbdStringIn KbdPeek
VIO	VioGetBuf VioGetConfig VioGetCurPos VioGetCurType VioGetPhysBuf VioReadCellStr VioReadCharStr VioScrollUp VioScrollDn VioScrollLf VioScrollRt VioScrUnLock VioSetCurPos VioSetCurType VioSetMode VioGetMode VioShowBuf VioWrtCellStr VioWrtCharStr VioWrtCharStrAtt VioWrtNAttr VioWrtNCell VioWrtNChar VioWrtTTY VioScrLock VioPopUp
Tools	BIND
Modules	DOSCALLS.DLL VIOCALLS.DLL KBDCALLS.DLL MSG.DLL
Libraries	API.LIB OS2386.LIB FAPI.LIB DOSCALLS.LIB SUBCALLS.LIB