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