IFSMgr_NetFunction


IFSMgr_NetFunction(
 pioreq pir,
 pUserRegs pRegs,
 int proId,
 int flags
 )

This service is provided to export certain functions most of which are specific to the network FSDs. These functions can come from a variety of sources: int 21h and int 2fh functions that the IFS hooks but does not support, int 21h functions that the IFS does not support that are hooked via IFSMgr_SetReqHook and internal IFS manager broadcast functions to notify FSDs of certain happenings. It is not possible to document the different functions that different FSDs might hook. What is documented here are the internal broadcasts that the IFS manager issues and the general interface of the IFSMgr_NetFunction api. FSDs that need to see these calls need to hook the IFSMgr_NetFunction service using the VMM Hook_Device_Service service. The IFS manager has a stub installed for the IFSMgr_NetFunction service that returns error if no one else has hooked the service.

pir

Supplies the IOREQ structure. The actual fields used in IOREQ vary based on the function type and are described below.

pRegs

Supplies pointer to the client register structure.

User AX

Supplies the function type. Depending on the type of function the IOREQ structure is appropriately initialized. If this is an int 21h that is not processed by the IFS manager but has been hooked by the FSD via the IFSMgr_SetReqHook function, this field contains the original AX value that the user issued the int 21h with. There are a via int 2fh requests that are also routed through this service with AX containing the original int 2fh function numbers in AX. FSDs that need to process them should look for them.

Function Type:

Value

Meaning

NF_PROCEXIT

This function is broadcast whenever a process exits for FSDs to do any cleanup, if necessary. For normal resources, the IFS manager takes care of cleanup and calls the FSDs at process exit time. Only FSDs that need to maintain special per process resources that the IFS does not know about need to monitor this call.

NF_DRIVEUSE

This function is broadcast whenever a new drive appears in the system. This need not necessarily be a network drive.

NF_DRIVEUNUSE

This function is broadcast whenver a drive goes away. This need not necessarily be a net drive.

NF_GETPRINTJOBID

This function is broadcast when the IFS manager needs a print job id from the FSD. This is used only for network FSDs.

NF_PRINTERUSE

This function is broadcast whenever a network printer is attached.

NF_PRINTERUNUSE

This function is broadcast whenever a network printer is disconnected.

proId

Supplies the provider id the call is meant for - could be all providers (ANYPROID) also depending on the function type. This is described below.


flags

Supplies special flags. This flag is currently a boolean flag - it is set if this is a Win32 api call and clear if it is not a Win32 api call.

Function NF_PROCEXIT:

Value

Meaning

ir_pid

Supplies process id of exiting process.

proId

ANYPROID.


Function NF_DRIVEUSE:

Value

Meaning

ir_rh

Supplies FSD resource handle to the drive that has just appeared.

ir_flags

Supplies driveletter (1-based) of drive that has just appeared.

ir_aux1.aux_ul

Supplies provider id of the provider handling the new drive.

proId

ANYPROID.


Function NF_DRIVEUNUSE:

Value

Meaning

ir_rh

Supplies FSD resource handle to the drive that has gone away.

ir_flags

Supplies driveletter (1-based) of drive that has gone away.

ir_aux1.aux_ul

Supplies provider id for the deleted drive.

proId

ANYPROID.


Function NF_GETPRINTJOBID:

Value

Meaning

ir_rh

Supplies FSD resource handle to the printer.

ir_data

Supplies pointer to the user buffer where the print job id is to be filled in.

proId

Provider id of provider handling the printer resource.


Function NF_PRINTERUSE:

Value

Meaning

ir_rh

Supplies FSD resource handle to the new printer.

ir_flags

Supplies printer index of new printer. The printer index is a value from 0 through 8 for LPT1 - LPT9. PRN has the same index as LPT1.

proId

Supplies provider id of provider who is handling the new printer.


Function NF_PRINTERUNUSE:

Value

Meaning

ir_rh

Supplies FSD resource handle to the printer that just got disconnected.

ir_flags

Supplies printer index of printer being disconnected. Look above for details about this field.

proId

Supplies provider id of provider who was handling the disconnected printer.


Hooked Int 21h Function:

Value

Meaning

ir_ppath

Supplies pointer to parsed path buffer that can be used by the FSD. The IFS manager does not initialize this field with anything.

proId

Provider returned by the hooking FSD on its preamble return. The details are described in section 8.11.5.9.


ir_error

Returns 0 if success, errorcode if failure.