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