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