DOS3Call

Version 3.0

This function allows an application to issue a DOS function-request interrupt 21H. An application can use this function instead of a directly coded DOS 21H interrupt. The DOS3Call function executes somewhat faster than the equivalent DOS 21H software interrupt under Windows.

This function does not work properly when called from a discardable code segment while Windows is running in real mode. It does work properly in standard and 386 enhanced modes, and when called from a fixed code segment in real mode. An application can call the GetWinFlags function to determine the mode in which Windows is running. An application must call INT 21H instead of DOS3Call if it is running in real mode from a discardable code segment. Otherwise the application must call DOS3Call.

An application can call this function only from an assembly-language routine. It is exported from KERNEL.EXE and is not defined in any Windows include files.

To use this function call, an application should declare it in an assembly-language program as shown:

extrn DOS3Call :far

If the application includes CMACROS.INC, the application declares it as shown:

extrnFP Dos3Call

Before calling DOS3Call, all registers must be set as for an actual INT 21H. All registers at the function's exit are the same as for the corresponding INT 21H function.

This function has no parameters and returns the registers of the DOS function.

The following is an example of using DOS3Call:

extrn DOS3Call : far

.

.

.

; set registers

movah, DOSFUNC

cCall DOS3Call