IFSMgr_SetPathHook(
void * PathCheckFunc
)
This service has been provided for FSDs to check for special path prefixes and process them separately. The FSD can register a routine with the IFS manager that is called every time a path is parsed. If this is a prefix the FSD wants to process, it can claim it and the IFS manager will then call the FSD directly on the path-based operation.
The interface to the path checking preamble function is described below. Preamble functions must chain on if they reject a request. If the preamble function hooks the path, it can update the
Carry flag clear.
| [EAX] | Length of the last path element consumed by the FSD. |
| [EBX] | Pointer in the input string to the beginning of the last path element consumed by the FSD. |
| [EDX] | Provider ID of the FSD that claimed the path. |
| [ESI] | Pointer to source unicode pathname - possibly updated. |
| [EDI] | Pointer to destination buffer - possibly updated. If the destination buffer is updated, it must be maintained in the ParsedPath format described earlier. |
Request not hooked:
FSD must jump to the address of the previous path checking preamble, returned on the call to IFSMgr_SetPathHook, with the entry conditions preserved.
| Register Usage
If request hooked, EDX, ESI, EDI must contain valid values and all other registers can be used. If request is not hooked, all registers must be preserved. |