API Function Calls

By Bill Earle

The following information describes the OS/2 Application Program Interface (API) calls. I have included information under the API column as follows: I also have attempted to provide information to assist in porting old programs over to OS/2. INT and SUBCODE columns provide the old DOS interrupt and subcode functions. In some cases, these are approximations of old DOS calls. Again, refer to the OS/2 Technical Reference Manual for further information.
 * F : is a Family API (FAPI) call. This means that this call will also run under DOS 3.3, if assembled with the BIND program.
 * R : means Restricted function. Refer to the OS/2 Technical Reference Manual for further info.

DosCreateQueue  Create and open the queue specified for use by the calling process DosCreatSem     Create a semaphore for use by the calling process DosCreateThread Create an asynchronous execution thread for the calling process. Threads are the OS/2 CPU scheduling entities. R  21H  4DH      DosCWait         Wait for a child process termination and get return code F  21H  41H      DosDelete        Delete the file specified by the ASCIIZ name. F                DosDevConfig     Return device information about attached devices F  21H  44H      DosDevIOCtl      Communicate with an opened device handle F  21H  45H,46H  DosDupHandle     Return a duplicate DOS handle for the file handle provided DosEnterCritSec Mark the entrance of a critical section of code and prevent the execution of other threads of code in                                        the same process for concurrent processing synchronization R                DosError         Allow the calling process to receive OS/2 hard-error notification as                                              Opposed to the OS/2 generation of a                                           hard-error signal R  21H  59H      DosErrorClass    Get extended error information. R  21H  4BH      DosExecPgm       Spawn a secondary program as a child process R  21H  00H,4CH  DosExit          Complete the current thread of                                                information DosExitCritSec  Mark the end of a critical section of                                         code and enable other threads within the current process to execute again in a concurrent fashion DosExitList     Maintain the list (add,delete,modify) of routines that the current process is to execute upon completion R  21H  5CH      DosFileLock      Lock or unlock a range of bytes within a file in support of file-sharing operations R                DosFindClose     Close the handle associated with the file returned by a DosFindNext API service R  21H  4EH      DosFindFirst     Find the first file in a group of                                             files matching the file specification provided R  21H  4FH      DosFindNext      Find the next file in a group of                                              files matching the file specification provided in the call to DosFindFirst DosFlagProcess  Set an external event flag that other processes can access for synchroniza- tion of concurrent processes DosFreeModule   Release the link to the dynamic link module specified by the module handle. This service decrements the usage for the specified module F  21H  49H      DosFreeSeg       Release a previously allocated memory segment F                DosGetCollate    Get the current collating sequence based upon the current code-page 21H 66H      DosGetCP         Return the code-page in use by the current application R  21H  38H      DosGetCtryInfo   Return country dependent formatting information F  21H  2AH,2CH  DosGetDateTime   Return the current date and time 21H 65H      DosGetDBCSEnv    Return the DBCS vector for the specified country code F                DosGetEnv        Return the segment and offset address of the current process command envir onment F                DosGetHugeShift  Return the shift count used by                                                DosAllocHuge to allocate memory larger than one segment DosGetInfoSeg   Return the address of the OS/2 system variables F                DosGetMachineMode Return the current processor mode (real or Protected) F                DosGetMessage    Obtain the text from the system message file for the specified message and place it into a user-defined buffer DosGetModHandle Return a handle to a dynamic link module DosGetModName   Get the complete DOS path name for the dynamic link module associated with the file handle provided DosGetProcAddr  Return the far address to the procedure specified within a dynamic link library DosGetPrty      Return the priority of the current process DosGetResource  Return the segment selector for the handle to the specified resource DosGetSeg       Obtain acces to the memory segment specified by the selector provided DosGetShrSeg    Obtain access to the shared memory segment specified by the name provided. The usage count of the segment is incremented F  21H  30H      DosGetVersion    Return the DOS version number DosGiveSeg      Allow the process specified by the process identification provided to access a shared memory segment R                DosHoldSignal    Enable/disable signal processing for the current process F                DosInsMessage    Place a text string into the body of a                                        message DosKillProcess  Terminate a process and return a termination code to the parent process or OS/2 DosLoadModule   Load the dynamic link module specified and return a handle. DosLockSeg      Lock a segment of memory marked as discardable DosMakePipe     Create a communications pipe for the calling process DosMemAvail     Return the size of the largest block of                                       memory available F  21H  39H      DosMkDir         Create the specified directory DosMonClose     Close the handle to a serial device that the process has been monitoring DosMonOpen      Open a handle to a serial device for device I/O monitoring DosMonRead      Wait for and return the input records to a                                    serial device open for I/O monitoring DosMonReg       Create input and output buffer structures for device I/O monitoring DosMonWrite     Write a data record to the output monitor buffer of a device open for I/O monitoring F  21H  56H      DosMove          Move a file from one location to another DosMuxSemWait   Suspens the execution of the current thread until one or more semaphores have been cleared F                DosNewSize       Change the size of the file associated with the specified file handle R  21H  3CH,3DH  DosOpen          Open an existing file (if present) or create a file with the name specified by the ASCIIZ string provided DosOpenQueue    Open the queue specified by the ASCIIZ string provided for use by the current process DosOpenSem      Open the semaphore specified by the ASCIIZ string provided for use by the current process DosPeekQueue    Examine, but do not remove, an element from the specified queue DosPFSActivate  Activate the code-page and font specified for the printer. This activation only affects the calling process. DosPFSCloseUser Notify the font-switching software that the process has closed its spool file. The font-switching software can release any related resources DosPFSInit      Direct the font-switching software to initialize code-page switching and font-switching for the specified printer DosPFSQueryAct  Return the current code-page and font for the specified printer DosPFSVerifyFont Ensure that the code-page and font desired are supported by the specified printer DosPhysicalDisk Return partitioned disk information F                DosPortAccess    Request or release access to a hardware port or ports DosPtrace       Set a Ptrace buffer that is used in debugging DosPurgeQueue   Delete all of the elements contained in the queue associated with the handle provided DosPutMessage   Output the message provided to the file or device associated with a given file handle F  21H  47H      DosQCurDir       Return the current directory F  21H  19H      DosQCurDisk      Return the current disk drive R                DosQFHandState   Query the state of the file associated with tha handle provided F  21H  57H      DosQFileInfo     Return dat and time specifics about the file associated with the file handle provided F  21H  43H      DosQFileMode     Return the attribute byte for a specific file F  21H  36H      DosQFSInfo       Return information about the disk in the specified drive DosQHandType    Determine if the handle specified references a device or file DosQueryQueue   Return the number of elements in the specified queue F  21H  54H      DosQVerify       Determine whether the specified queue is                                      active or inactive F  21H  3FH      DosRead          Read the specified number of bytes from the file associated with the file handle DosReadAsynch   Read the specified number of bytes from the file associated with the file handle. The I/O operation occurs concurrently with the continued execution of the process DosReadQueue    Read and remove an element from the specified queue R                DosReallocHuge   Modify the size of a previously allocated huge (larger than 1 segment) section of                                      memory R  21H  4AH      DosReallocSeg    Modify the size of a previosly allocated memory segment DosResumeThread Restart a previously suspended thread of                                      execution for the current process F  3AH           DosRmDir         Remove the directory specified by the ASCIIZ string F                DosScanEnv       Search a process environment segment for a                                    specified variable and return its value if                                    found DosSearchPath   Define a search path for data files F  21H  0EH      DosSelectDisk    Set the desired current drive DosSelectSession Select the desired foreground session DosSemClear     Clear the specified semaphore DosSemRequest   Obtain a new handle to a new semaphore DosSemSet       Set the semaphore associated with the handle provided DosSemSetWait   Set the semaphore associated with the handle provided and suspend execution of the current thread until the semaphore is cleared DosSemWait      Suspend execution of the current thread until the semaphore associated with the handle provided is cleared DosSendCtlC     Send a Ctrl-C signal to the lowest process in                                                                                     the tree of processes 21H 66H      DosSetCP         Set the code-page as specified for the call- ing process F  21H  2BH,2DH  DosSetDateTime   Set the current system date and time R                DosSetFHandState Set the state of the file associated with the handle provided F  21H  57H      DosSetFileInfo   Set the date information (last read, last                                     write, creation, and so on) for the file associated with the handle provided F  21H  43H      DosSetFileMode   Set the attribute byte for the file assoc- iated with the file handle provided F                DosSetFsInfo     Sets information for a file system  specified device 21H 67H      DosSetMaxFH      Define the maximum number of file handles (up                                                                                     to 255) for the current process DosSetPrty      Set the priority for the current thread DosSetSession   Set the status of a child process R                DosSetSigHandler Define a signal-handling routine for a                                        specific signal F  21H  25H      DosSetVec        Define an exception-handling routine for specified exeptions F  21H  2EH      DosSetVerify     Enable or disable disk verification for the current process DosSleep        Suspend the current thread for a specified interval of time DosStartSession Invoke a second application as an OS/2 session DosStopSession  Terminate a session previously invoked thru the DosStartSession F                DosSubAlloc      Allocate memory from within a segment previously allocated by DosAllocSeg or                                       DosAllocShrSeg F                DosSubFree       Free memory previously allocated by                                           DosSubAlloc F                DosSubSet        Initialize a segment for suballocation, or                                    change the size of a previously suballocated segment DosSuspendThread Suspend the current thread of execution until a DosResumeThread service is invoked DosSystemService Request OS/2 to perform a unique function (such as system-wide event notification for the specific process) DosTimerAsynch  Start a timer that runs asynchronously to the thread issuing the request. Upon completion of the time interval, this service sets the specified semaphore DosTimerStart   Start a periodic interval timer that runs asynchronously to the current thread. Each time the interval completes, the service clears the specified semaphore DosTimerStop    Stop a periodic interval timer previously started by DosTimerStart or DosTimerAsynch DosUnlockSeg    Unlock a memory segment previously marked as                                   discardable DosWait         Suspend the current process until the child process specified by the provided process identification terminates F  21H  40H      DosWrite         Write the specified number of bytes to the file associated with the file handle provided DosWriteAsynch  Write the specified number of bytes to the file associated with the file handle that is                                                                                     provided concurrently with the threads remaining processing DosWriteQueue   Place an element in a specified queue

F  10H  03H      VioGetCurPos     Return the current row and column cursor position for the specified logical video buffer F                VioGetCurType    Return the cursor type and attributes for the specified logical video buffer VioGetFont      Return the current font for the specified logical video buffer F  10H  0FH      VioGetMode       Return the current video mode for the specified logical video buffer F                VioGetPhysBuf    Return the address of the physical video buffer VioGetState     Return the current video states, or the palette registers, the border color, or background intensity VioModeUndo     Allow one process thread to cancel a                                                VioModeWait service issued by another thread in the same process VioModeWait     Request that a graphics mode application be                                         notified each time it needs to restore its video mode VioPopUp        Allocvate a temporary popup display screen for message display VioPrtSc        Print the current screen contents VioPrtScToggle  The OS/2 session manager invokes this routine each time the user presses the Shift-PrtSc key combination F  10H  08H      VioReadCellStr   Read a string of characters and attributes from the screen starting at a specified row and column location F                VioReadCharStr   Read a character string from the display starting at ther specified row and column VioRegister     Register a video subsystem with a specific screen group VioSavRedraw    Request that a process be notified when it must save or redraw its contents VioSavRedrawUndo Allow one thread in a process to cancel a                                   VioSavRedrawWait service issued by another thread within the same process F  10H  07H      VioScrollDn      Scrool the screen contents down as specified by                                    the row and column numbers and number of lines to scroll VioScrLock      Lock the screen and prevent I/O operations F                VioScrollLf      Scroll the screen contents to the left as                                    specified F                VioScrollRt      Scroll the screen contents to the right as                                    specified F  10H  06H      VioScrollUp      Scroll the screen contents up as specified by                                    the row and column numbers and number of lines to scroll VioScrUnlock    Unlock the screen for I/O operations VioSetAnsi      Enable or disable ANSI support for the specified logical video buffer VioSetCP        Set the code-page for the specified logical video buffer VioSetCurPos    Set the cursor position to the row and column of the logical video buffer provided F  10H  02H      VioSetCurType    Set the cursor type (attributes) for the logical video display provided VioSetFont      Set the font for the logical video display F  10H  00H      VioSetMode       Set the display mode for the logical video display provided 10H 0BH      VioSetState      Set the state for the palette registers, border color, or background intensity for the specified logical video display F                VioShowBuf       Update the physical display with the contents of a logical display buffer F  10H  09H      VioWrtCellStr    Write a character string (with attributes) to                                    the specified video display location F  10H  0AH      VioWrtCharStr    Write a character string to the specified vidoe display location F                VioWrtCharStrAtt Write a character string using a repeated attribute to the specified video display F                VioWrtNAttr      Write the character attribute to the video display at the specified location. This service provides an optional repeat count F                VioWrtNCell      Write a character or attribute to the video display the specified number of times F                VioWrtNChar      Write a character to the video display starting at the specified location and repeating the display n times F  10   0EH      VioWrtTty        Write a character string to the video display starting at the current cursor position in TTY mode