NTSTATUS MiDispatchFault( IN BOOLEAN StoreInstruction, IN PVOID VirtualAddress, IN PMMPTE PointerPte, IN PMMPTE PointerProtoPte, IN PEPROCESS Process, OUT PLOGICAL ApcNeeded ); Routine Description: This routine dispatches a page fault to the appropriate routine to complete the fault. Arguments: StoreInstruction - Supplies TRUE if the instruction is trying to modify the faulting address (i.e. write access required). VirtualAddress - Supplies the faulting address. PointerPte - Supplies the PTE for the faulting address. PointerProtoPte - Supplies a pointer to the prototype PTE to fault in, NULL if no prototype PTE exists. Process - Supplies a pointer to the process object. If this parameter is NULL, then the fault is for system space and the process's working set lock is not held. If this parameter is HYDRA_PROCESS, then the fault is for session space and the process's working set lock is not held - rather the session space's working set lock is held. ApcNeeded - Supplies a pointer to a location set to TRUE if an I/O completion APC is needed to complete partial IRPs that collided. It is the caller's responsibility to initialize this (usually to FALSE) on entry. However, since this routine may be called multiple times for a single fault (for the page directory, page table and the page itself), it is possible for it to occasionally be TRUE on entry. If it is FALSE on exit, no completion APC is needed. Return Value: status. Environment: Kernel mode, working set lock held.