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