IFSMgr_ServerDOSCall

This service is provided so that FSDs that need to do a server DOS call to obtain certain services need not do an int 21h call any more. They can directly call this service now. The parameters for this service are passed in registers.

[EBX]
Handle of current VM.
[ECX]
Function number.
[ESI]
Pointer to extended 32-bit DPL. This structure looks as follows:
DPL32 Structure:  
DPL32_EAX Supplies EAX register.
DPL32_EBX Supplies EBX register.
DPL32_ECX Supplies ECX register.
DPL32_EDX Supplies EDX register.
DPL32_ESI Supplies ESI register.
DPL32_EDI Supplies EDI register.
DPL32_EBP Supplies EBP register.
DPL32_UID Supplies the user id.
DPL32_PID Supplies the process id.
DPL32_DTA Supplies a flat pointer to the DTA.
DPL32_FLAGS Supplies special flags.

DPL32 Flag Values:  
Value Meaning
DPL32_USE_ANSI Requests the IFS manager to assume that the path strings passed in are in Windows ANSI.
DPL32_USE_OEM Requests the IFS manager to assume that the path strings passed in are in the current OEM codepage.
DPL32_USE_UNICODE Requests IFS manager to assume everything is passed in unicode. By default, the IFS manager selects the codepage based on the current thread context.
DPL32_8_3_MATCHING If this flag is set, the IFS manager will force 8.3 matching semantics on the pathname passed in even though it came in via an LFN API. The path can contain long names, but the filename itself cannot be a long name. This API is provided because the server may have to issue an LFN API call on a call that originated as a normal API at the client end if the sharename is long. However, a normal LFN API has LFN matching semantics and this poses compatibility issues for old-style apps.

DPL32_PAD
Filler bytes to align structure.
[EBP]
Pointer to client register frame.
Carry clear Request was processed. Client registers set appropriately to indicate status of the call.
Carry set Request was not processed by the IFS manager.