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.