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