IFSMgr_SetPathHook

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.

PathCheckFunc
Supplies address of path checking preamble function to be called by the IFS manager.

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

[ESI]
Pointer to unicode pathname. Note: this pathname has not been canonicalized.
[EDI]
Pointer to destination buffer to contain the parsed path.
[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.