#include "mi.h"
Go to the source code of this file.
Defines | |
#define | STATUS_ISSUE_PAGING_IO (0xC0033333) |
#define | STATUS_PTE_CHANGED 0x87303000 |
#define | STATUS_REFAULT 0xC7303001 |
#define | MI_PROTOTYPE_WSINDEX ((ULONG)-1) |
#define | MMMAX_INPAGE_SUPPORT 4 |
Functions | |
VOID | MiHandleBankedSection (IN PVOID VirtualAddress, IN PMMVAD Vad) |
NTSTATUS | MiCompleteProtoPteFault (IN BOOLEAN StoreInstruction, IN PVOID FaultingAddress, IN PMMPTE PointerPte, IN PMMPTE PointerProtoPte) |
NTSTATUS | MiDispatchFault (IN BOOLEAN StoreInstruction, IN PVOID VirtualAddress, IN PMMPTE PointerPte, IN PMMPTE PointerProtoPte, IN PEPROCESS Process, OUT PLOGICAL ApcNeeded) |
NTSTATUS | MiResolveDemandZeroFault (IN PVOID VirtualAddress, IN PMMPTE PointerPte, IN PEPROCESS Process, IN ULONG PrototypePte) |
NTSTATUS | MiResolveTransitionFault (IN PVOID FaultingAddress, IN PMMPTE PointerPte, IN PEPROCESS CurrentProcess, IN ULONG PfnLockHeld, OUT PLOGICAL ApcNeeded) |
NTSTATUS | MiResolvePageFileFault (IN PVOID FaultingAddress, IN PMMPTE PointerPte, OUT PMMINPAGE_SUPPORT *ReadBlock, IN PEPROCESS Process) |
NTSTATUS | MiResolveProtoPteFault (IN BOOLEAN StoreInstruction, IN PVOID FaultingAddress, IN PMMPTE PointerPte, IN PMMPTE PointerProtoPte, OUT PMMINPAGE_SUPPORT *ReadBlock, IN PEPROCESS Process, OUT PLOGICAL ApcNeeded) |
NTSTATUS | MiResolveMappedFileFault (IN PVOID FaultingAddress, IN PMMPTE PointerPte, OUT PMMINPAGE_SUPPORT *ReadBlock, IN PEPROCESS Process) |
NTSTATUS | MiWaitForInPageComplete (IN PMMPFN Pfn2, IN PMMPTE PointerPte, IN PVOID FaultingAddress, IN PMMPTE PointerPteContents, IN PMMINPAGE_SUPPORT InPageSupport, IN PEPROCESS CurrentProcess) |
PMMPTE | MiFindActualFaultingPte (IN PVOID FaultingAddress) |
PMMPTE | MiCheckVirtualAddress (IN PVOID VirtualAddress, OUT PULONG ProtectCode) |
NTSTATUS FASTCALL | MiCheckPdeForPagedPool (IN PVOID VirtualAddress) |
NTSTATUS FASTCALL | MiCheckPdeForSessionSpace (IN PVOID VirtualAddress) |
VOID | MiInitializePfn (IN PFN_NUMBER PageFrameIndex, IN PMMPTE PointerPte, IN ULONG ModifiedState) |
VOID | MiInitializeReadInProgressPfn (IN PMDL Mdl, IN PMMPTE BasePte, IN PKEVENT Event, IN WSLE_NUMBER WorkingSetIndex) |
VOID | MiInitializeTransitionPfn (IN PFN_NUMBER PageFrameIndex, IN PMMPTE PointerPte, IN WSLE_NUMBER WorkingSetIndex) |
VOID | MiInitializeCopyOnWritePfn (IN PFN_NUMBER PageFrameIndex, IN PMMPTE PointerPte, IN WSLE_NUMBER WorkingSetIndex, IN PVOID SessionPointer) |
BOOLEAN | MmIsAddressValid (IN PVOID VirtualAddress) |
VOID | MiInitializePfnForOtherProcess (IN PFN_NUMBER PageFrameIndex, IN PMMPTE PointerPte, IN PFN_NUMBER ContainingPageFrame) |
VOID | MiAddValidPageToWorkingSet (IN PVOID VirtualAddress, IN PMMPTE PointerPte, IN PMMPFN Pfn1, IN ULONG WsleMask) |
PMMINPAGE_SUPPORT | MiGetInPageSupportBlock (VOID) |
VOID | MiFreeInPageSupportBlock (IN PMMINPAGE_SUPPORT Support) |
VOID | MiFlushInPageSupportBlock () |
NTSTATUS | MiSessionCopyOnWrite (IN PMM_SESSION_SPACE SessionSpace, IN PVOID FaultingAddress, IN PMMPTE PointerPte) |
Variables | |
MMPTE | MmSharedUserDataPte |
PVOID | MmSpecialPoolStart |
PVOID | MmSpecialPoolEnd |
MMINPAGE_SUPPORT_LIST | MmInPageSupportList |
|
Definition at line 43 of file pagfault.c. Referenced by MiInitializeReadInProgressPfn(), MiInitializeTransitionPfn(), MiResolveMappedFileFault(), and MiResolvePageFileFault(). |
|
Referenced by MiFlushInPageSupportBlock(). |
|
Definition at line 34 of file pagfault.c. Referenced by MiDispatchFault(), MiResolveMappedFileFault(), and MiResolvePageFileFault(). |
|
Definition at line 35 of file pagfault.c. Referenced by MiDispatchFault(), and MiWaitForInPageComplete(). |
|
Definition at line 36 of file pagfault.c. Referenced by MiDispatchFault(), MiResolveDemandZeroFault(), MiResolveMappedFileFault(), MiResolvePageFileFault(), MiResolveProtoPteFault(), MiResolveTransitionFault(), and MiWaitForInPageComplete(). |
|
Definition at line 4056 of file pagfault.c. References ASSERT, _MMWSLE::e1, FALSE, MI_IS_PAGE_TABLE_ADDRESS, MI_IS_PROCESS_SPACE_ADDRESS, MI_IS_SESSION_ADDRESS, MI_IS_SESSION_PTE, MI_IS_SYSTEM_CACHE_ADDRESS, MI_SET_PTE_IN_WORKING_SET, MiLocateAndReserveWsle(), MiUpdateWsle(), MmSessionSpace, MmSystemCacheWs, MmSystemCacheWsle, MmWsle, PERFINFO_ADDTOWS, PsGetCurrentProcess, _MMWSLENTRY::SameProtectAsProto, _MMWSLE::u1, _EPROCESS::UniqueProcessId, _EPROCESS::Vm, _MM_SESSION_SPACE::Vm, _MMSUPPORT::VmWorkingSetList, _MM_SESSION_SPACE::Wsle, and WSLE_NUMBER. Referenced by MiAllocatePoolPages(), MiCompleteProtoPteFault(), MiDispatchFault(), MiMakeSpecialPoolPagable(), MiResolveDemandZeroFault(), MiResolveTransitionFault(), and MiSessionCommitPageTables().
|
|
Definition at line 3125 of file pagfault.c. References FALSE, MI_IS_KERNEL_PAGE_TABLE_ADDRESS, MI_IS_SESSION_ADDRESS, MI_IS_SESSION_PTE, MI_WRITE_VALID_PTE, MiCheckPdeForSessionSpace(), MiGetPdeAddress, MiGetPteAddress, MiGetVirtualAddressMappedByPte, MiHydra, MMPTE, MmSystemPagePtes, MmSystemRangeStart, NTSTATUS(), PDE_PER_PAGE, TRUE, and _MMPTE::u. Referenced by MiCheckProtoPtePageState(), MiCloneProcessAddressSpace(), MiDeletePte(), MiDeleteSystemPagableVm(), MiEliminateWorkingSetEntry(), MiHandleForkTransitionPte(), MiInitializeCopyOnWritePfn(), MiInitializePfn(), MiInitializeReadInProgressPfn(), MiInitializeTransitionPfn(), and MmAccessFault().
|
|
Definition at line 3224 of file pagfault.c. References ASSERT, DbgPrint, FALSE, Index, MI_IS_SESSION_ADDRESS, MI_IS_SESSION_PTE, MiGetPdeAddress, MiGetPdeSessionIndex, MiGetPteAddress, MiGetVirtualAddressMappedByPte, MiHydra, MmSessionSpace, _MM_SESSION_SPACE::PageTables, TRUE, and _MMPTE::u. Referenced by MiCheckPdeForPagedPool(), and MmAccessFault().
|
|
Definition at line 2880 of file pagfault.c. References _IMAGE_ENTRY_IN_SESSION::Address, ASSERT, DISPATCH_LEVEL, _MMVAD::FirstPrototypePte, _MM_SESSION_SPACE::ImageList, KeFlushEntireTb(), KeLowerIrql(), KeRaiseIrql(), _IMAGE_ENTRY_IN_SESSION::LastAddress, MI_GET_PROTECTION_FROM_VAD, MI_IS_PAGE_TABLE_ADDRESS, MI_IS_SESSION_ADDRESS, MI_VA_TO_VPN, MiGetProtoPteAddress, MiGetPteAddress, MiHandleBankedSection(), MiLocateAddress(), MM_EXECUTE_WRITECOPY, MM_LARGE_PAGES, MM_NOACCESS, MM_PAGED_POOL_START, MM_READONLY, MM_READWRITE, MM_SESSION_SPACE_WS_LOCK_ASSERT, MM_UNKNOWN_PROTECTION, MmPagedPoolInfo, MmSessionSpace, MmSharedUserDataPte, NULL, PAGE_ALIGN, PAGE_SHIFT, _IMAGE_ENTRY_IN_SESSION::PrototypePtes, _MMVAD::StartingVpn, TRUE, _MMPTE::u, _SUBSECTION::u, _MMVAD::u, _MMVAD::u2, _MMVAD::u4, and ZeroPte. Referenced by MiFindActualFaultingPte(), MiWaitForInPageComplete(), and MmAccessFault().
|
|
Definition at line 1762 of file pagfault.c. References APC_LEVEL, ASSERT, _SUBSECTION::ControlArea, DbgPrint, FALSE, _FILE_OBJECT::FileName, _CONTROL_AREA::FilePointer, MI_GET_PAGE_FRAME_FROM_PTE, MI_GET_PROTECTION_FROM_SOFT_PTE, MI_IS_SESSION_IMAGE_ADDRESS, MI_MAKE_VALID_PTE, MI_PFN_ELEMENT, MI_PTE_LOOKUP_NEEDED, MI_SET_PTE_DIRTY, MI_STARTING_OFFSET, MI_WRITE_VALID_PTE, MiAddValidPageToWorkingSet(), MiGetPteAddress, MiGetSubsectionAddress, MiGetVirtualAddressMappedByPte, MiHydra, MiReleasePageFileSpace(), MM_PFN_LOCK_ASSERT, MM_PROTECTION_WRITE_MASK, NULL, _MMPFN::OriginalPte, PERFINFO_SOFTFAULT, PsGetCurrentProcess, PsGetCurrentThread, TRUE, _CONTROL_AREA::u, _MMPTE::u, _MMPFN::u1, _MMWSLE::u1, _MMPFN::u2, _MMPFN::u3, and UNLOCK_PFN. Referenced by MiDispatchFault(), and MiResolveProtoPteFault().
|
|
Definition at line 68 of file pagfault.c. References ActiveAndValid, APC_LEVEL, _ETHREAD::ApcNeeded, ASSERT, _MMINPAGE_SUPPORT::BasePte, _MDL::ByteCount, DbgPrint, _MMINPAGE_SUPPORT::Event, FALSE, _FILE_OBJECT::FileName, _MMINPAGE_SUPPORT::FilePointer, FreePageList, HYDRA_PROCESS, IoPageRead(), _MMINPAGE_SUPPORT::IoStatus, KeDelayExecutionThread(), KeEnterCriticalRegion, KeLeaveCriticalRegion, KernelMode, KeSetEvent(), LOCK_PFN, LOCK_SESSION_SPACE_WS, LOCK_SYSTEM_WS, _MMINPAGE_SUPPORT::Mdl, MI_IS_PHYSICAL_ADDRESS, MI_IS_SESSION_ADDRESS, MI_MAGIC_AWE_PTEFRAME, MI_MAKE_TRANSITION_PTE_VALID, MI_PFN_ELEMENT, MI_REMOVE_LOCKED_PAGE_CHARGE, MI_SET_PTE_DIRTY, MI_WRITE_VALID_PTE, MiAddValidPageToWorkingSet(), MiCompleteProtoPteFault(), MiDecrementReferenceCount(), MiFlushInPageSupportBlock(), MiGetPdeAddress, MiGetPteAddress, MiHydra, MiInsertPageInList(), MiResolveDemandZeroFault(), MiResolvePageFileFault(), MiResolveProtoPteFault(), MiResolveTransitionFault(), MiRestoreTransitionPte(), MiUnlinkPageFromList(), MiWaitForInPageComplete(), MM_DBG_PAGEFAULT, MmHardFaultNotifyRoutine, MmIsRetryIoStatus, MmPageLocationList, MmShortTime, _ETHREAD::NestedFaultCount, NT_SUCCESS, NTSTATUS(), NULL, _MMINPAGE_SUPPORT::Page, PAGE_SIZE, PERFINFO_DISPATCHFAULT_DECL, PERFINFO_HARDFAULT, PERFINFO_HARDFAULT_INFO, PERFINFO_HARDFAULT_IOTIME, _MMINPAGE_SUPPORT::Pfn, PHARD_FAULT_NOTIFY_ROUTINE, PsGetCurrentThread, _MMPFN::PteFrame, _MMINPAGE_SUPPORT::ReadOffset, StandbyPageList, STATUS_ISSUE_PAGING_IO, STATUS_PTE_CHANGED, STATUS_REFAULT, TRUE, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, _MMPFN::u3, UNLOCK_PFN, UNLOCK_SESSION_SPACE_WS, UNLOCK_SYSTEM_WS, and UNLOCK_WS. Referenced by MmAccessFault().
|
|
Definition at line 2749 of file pagfault.c. References MI_IS_PHYSICAL_ADDRESS, MI_PTE_LOOKUP_NEEDED, MiCheckVirtualAddress(), MiGetPdeAddress, MiGetPpeAddress, MiGetPteAddress, MiPteToProto, NULL, and _MMPTE::u. Referenced by MiWaitForInPageComplete().
|
|
Definition at line 4301 of file pagfault.c. References APC_LEVEL, _MMINPAGE_SUPPORT_LIST::Count, ExFreePool(), _MMINPAGE_SUPPORT::ListEntry, _MMINPAGE_SUPPORT_LIST::ListHead, LOCK_PFN, _MMINPAGE_SUPPORT::Mdl, MM_PFN_LOCK_ASSERT, MmInPageSupportList, MMMAX_INPAGE_SUPPORT, NULL, and UNLOCK_PFN. Referenced by MiDispatchFault().
|
|
Definition at line 4252 of file pagfault.c. References ASSERT, _MMINPAGE_SUPPORT_LIST::Count, _MMINPAGE_SUPPORT_LIST::ListHead, MM_PFN_LOCK_ASSERT, MmInPageSupportList, and NULL. Referenced by MiWaitForInPageComplete(), and MmCopyToCachedPage().
|
|
Definition at line 4152 of file pagfault.c. References APC_LEVEL, ASSERT, _MMINPAGE_SUPPORT::Completed, _MMINPAGE_SUPPORT_LIST::Count, _MMINPAGE_SUPPORT::Event, ExAllocatePoolWithTag, ExFreePool(), FALSE, KeClearEvent, KeInitializeEvent, _MMINPAGE_SUPPORT::ListEntry, _MMINPAGE_SUPPORT_LIST::ListHead, LOCK_PFN, _MMINPAGE_SUPPORT::Mdl, MM_PFN_LOCK_ASSERT, MmInPageSupportList, NonPagedPool, NULL, PsGetCurrentThread, _MMINPAGE_SUPPORT::u, UNLOCK_PFN, and _MMINPAGE_SUPPORT::WaitCount. Referenced by MiResolveMappedFileFault(), MiResolvePageFileFault(), and MmCopyToCachedPage().
|
|
Definition at line 4374 of file pagfault.c. References _MMBANKED_SECTION::BankedRoutine, _MMBANKED_SECTION::BankShift, _MMBANKED_SECTION::BankSize, _MMBANKED_SECTION::BankTemplate, _MMBANKED_SECTION::BasedPte, _MMBANKED_SECTION::Context, _MMBANKED_SECTION::CurrentMappedPte, FALSE, KeFlushEntireTb(), MiGetPteAddress, PAGE_SHIFT, PTE_SHIFT, TRUE, _MMPTE::u, and ZeroPte. Referenced by MiCheckVirtualAddress().
|
|
Definition at line 3764 of file pagfault.c. References ActiveAndValid, ASSERT, _MMWSLE::e1, KeBugCheckEx(), MI_GET_PAGE_FRAME_FROM_PTE, MI_MAKE_PROTECT_NOT_WRITE_COPY, MI_PFN_ELEMENT, MiCheckPdeForPagedPool(), MiGetPteAddress, MiGetVirtualAddressMappedByPte, MM_EXECUTE_READWRITE, MM_PFN_LOCK_ASSERT, MmWsle, NT_SUCCESS, _MMPFN::OriginalPte, _MMWSLENTRY::Protection, _MMPFN::PteAddress, _MMPFN::PteFrame, _MMPTE::u, _MMPFN::u1, _MMWSLE::u1, _MMPFN::u2, _MMPFN::u3, and _MM_SESSION_SPACE::Wsle. Referenced by MiCopyOnWrite(), and MiSessionCopyOnWrite().
|
|
Definition at line 3398 of file pagfault.c. References ActiveAndValid, ASSERT, DbgPrint, KeBugCheckEx(), MI_GET_PAGE_FRAME_FROM_PTE, MI_IS_CACHING_DISABLED, MI_PFN_ELEMENT, MiCheckPdeForPagedPool(), MiFormatPfn(), MiFormatPte(), MiGetPteAddress, MiGetVirtualAddressMappedByPte, MM_DEMAND_ZERO_WRITE_PTE, MM_EXECUTE_READWRITE, MM_NOCACHE, MM_PFN_LOCK_ASSERT, MM_READWRITE, NT_SUCCESS, _MMPFN::OriginalPte, _MMPFN::PteAddress, _MMPFN::PteFrame, _MMPTE::u, _MMPFN::u2, and _MMPFN::u3. Referenced by ExAllocatePool(), MiAddWorkingSetPage(), MiAddWsleHash(), MiAllocatePoolPages(), MiAllocateSpecialPool(), MiFillSystemPageDirectory(), MiInitializeSystemCache(), MiInitializeWorkingSetList(), MiLoadImageSection(), MiReloadBootLoadedDrivers(), MiResolveDemandZeroFault(), MiSessionCommitImagePages(), MiSessionCreateInternal(), MiSessionInitializeWorkingSetList(), MmAccessFault(), MmAddPhysicalMemory(), MmAllocateIndependentPages(), MmAllocateNonCachedMemory(), MmCheckCachedPageState(), MmCreateKernelStack(), MmGrowKernelStack(), MmInitializeProcessAddressSpace(), and MmInitSystem().
|
|
Definition at line 3973 of file pagfault.c. References ActiveAndValid, ASSERT, DbgPrint, MI_PFN_ELEMENT, MiFormatPfn(), MiFormatPte(), MM_DEMAND_ZERO_WRITE_PTE, MM_PFN_LOCK_ASSERT, _MMPFN::OriginalPte, _MMPFN::PteAddress, _MMPFN::PteFrame, _MMPTE::u, _MMPFN::u2, and _MMPFN::u3. Referenced by MiAllocatePoolPages(), MiFillSystemPageDirectory(), MiInitializeSessionPool(), MiMakeOutswappedPageResident(), MiSessionCommitPageTables(), MiSessionCreateInternal(), and MiSessionInitializeWorkingSetList().
|
|
Definition at line 3523 of file pagfault.c. References ASSERT, Event(), KeBugCheckEx(), MI_ADD_LOCKED_PAGE_CHARGE_FOR_MODIFIED_PAGE, MI_GET_PAGE_FRAME_FROM_PTE, MI_MAKE_TRANSITION_PTE, MI_PFN_ELEMENT, MI_PROTOTYPE_WSINDEX, MI_WRITE_INVALID_PTE, MiCheckPdeForPagedPool(), MiGetPteAddress, MiGetVirtualAddressMappedByPte, MM_PFN_LOCK_ASSERT, NT_SUCCESS, _MMPFN::OriginalPte, PAGE_SIZE, _MMPFN::PteAddress, _MMPFN::PteFrame, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, and _MMPFN::u3. Referenced by MiResolveMappedFileFault(), and MiResolvePageFileFault().
|
|
Definition at line 3650 of file pagfault.c. References ASSERT, KeBugCheckEx(), MI_GET_PAGE_FRAME_FROM_PTE, MI_MAKE_TRANSITION_PTE, MI_PFN_ELEMENT, MI_PROTOTYPE_WSINDEX, MI_WRITE_INVALID_PTE, MiCheckPdeForPagedPool(), MiGetPteAddress, MiGetVirtualAddressMappedByPte, MM_PFN_LOCK_ASSERT, NT_SUCCESS, NULL, _MMPFN::OriginalPte, _MMPFN::PteAddress, _MMPFN::PteFrame, TransitionPage, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, and _MMPFN::u3. Referenced by MiUpdateImageHeaderPage(), and MmCopyToCachedPage().
|
|
Definition at line 674 of file pagfault.c. References APC_LEVEL, ASSERT, CONSISTENCY_LOCK_PFN, CONSISTENCY_UNLOCK_PFN, _MMINFO_COUNTERS::DemandZeroCount, FALSE, HYDRA_PROCESS, LOCK_PFN, MI_BARRIER_STAMP_ZEROED_PAGE, MI_BARRIER_SYNCHRONIZE, MI_IS_PAGE_TABLE_ADDRESS, MI_MAKE_VALID_PTE, MI_PAGE_COLOR_VA_PROCESS, MI_PFN_ELEMENT, MI_SET_PTE_DIRTY, MI_WRITE_VALID_PTE, MiAddValidPageToWorkingSet(), MiEnsureAvailablePageOrWait(), MiInitializePfn(), MiRemoveAnyPage(), MiRemoveZeroPage(), MiRemoveZeroPageIfAny, MiWaitForForkToComplete(), MiZeroPhysicalPage(), MM_PFN_LOCK_ASSERT, MmInfoCounters, MmSystemPageColor, NULL, PERFINFO_PRIVATE_PAGE_DEMAND_ZERO, PERFINFO_SOFTFAULT, PrototypePte, PsGetCurrentThread, _MMPFN::PteFrame, STATUS_REFAULT, TRUE, _MMPTE::u, _MMPFN::u1, and UNLOCK_PFN. Referenced by MiDispatchFault(), MiResolveProtoPteFault(), and MmAccessFault().
|
|
Definition at line 1989 of file pagfault.c. References ASSERT, _SUBSECTION::ControlArea, _ETHREAD::DisablePageFaultClustering, _CONTROL_AREA::FilePointer, _ETHREAD::ForwardClusterOnly, HYDRA_PROCESS, KeBugCheckEx(), KeFlushEntireTb(), MDL_IO_PAGE_READ, MDL_PAGES_LOCKED, _MDL::MdlFlags, MI_GET_PAGE_COLOR_FROM_PTE, MI_GET_PAGE_COLOR_FROM_SESSION, MI_PAGE_COLOR_PTE_PROCESS, MI_PFN_ELEMENT, MI_PROTOTYPE_WSINDEX, MI_ZERO_USED_PAGETABLE_ENTRIES_IN_INPAGE_SUPPORT, MiEndingOffset(), MiEnsureAvailablePageOrWait(), MiFormatPte(), MiGetInPageSupportBlock(), MiGetSubsectionAddress, MiGetVirtualAddressMappedByPte, MiInitializeReadInProgressPfn(), MiIsPteOnPdeBoundary, MiRemoveAnyPage(), MiRemoveZeroPage(), MiStartingOffset(), MM_DBG_PTE_UPDATE, MM_MAXIMUM_READ_CLUSTER_SIZE, MM_PROTECTION_EXECUTE_MASK, MmAvailablePages, MmCodeClusterSize, MmDataClusterSize, MmFreeGoal, MmInfoCounters, MmInitializeMdl, MmSessionSpace, NULL, _CONTROL_AREA::NumberOfPfnReferences, PAGE_SHIFT, PAGE_SIZE, _MMINFO_COUNTERS::PageReadCount, _MMINFO_COUNTERS::PageReadIoCount, PERFINFO_DO_PAGEFAULT_CLUSTERING, PsGetCurrentThread, _SUBSECTION::PtesInSubsection, _ETHREAD::ReadClusterSize, STATUS_ISSUE_PAGING_IO, STATUS_REFAULT, _SUBSECTION::SubsectionBase, TRUE, _MMPTE::u, _CONTROL_AREA::u, and _SUBSECTION::u. Referenced by MiResolveProtoPteFault().
|
|
Definition at line 1272 of file pagfault.c. References APC_LEVEL, ASSERT, DbgPrint, _MMPAGING_FILE::File, _MMINPAGE_SUPPORT::FilePointer, GET_PAGING_FILE_NUMBER, GET_PAGING_FILE_OFFSET, HYDRA_PROCESS, MDL_IO_PAGE_READ, MDL_PAGES_LOCKED, MI_GET_PAGE_COLOR_FROM_SESSION, MI_GET_PAGE_COLOR_FROM_VA, MI_IS_PAGE_TABLE_ADDRESS, MI_PAGE_COLOR_VA_PROCESS, MI_PFN_ELEMENT, MI_PROTOTYPE_WSINDEX, MI_RETRIEVE_USED_PAGETABLE_ENTRIES_FROM_PTE, MiEnsureAvailablePageOrWait(), MiGetInPageSupportBlock(), MiGetPteAddress, MiInitializeReadInProgressPfn(), MiRemoveAnyPage(), MM_PFN_LOCK_ASSERT, MmInfoCounters, MmInitializeMdl, MmPagingFile, MmPagingFileDebug, MmSessionSpace, NULL, PAGE_ALIGN, PAGE_SHIFT, PAGE_SIZE, _MMINFO_COUNTERS::PageReadCount, _MMINFO_COUNTERS::PageReadIoCount, PsGetCurrentThread, _MMPAGING_FILE::Size, STATUS_ISSUE_PAGING_IO, STATUS_REFAULT, _MMPTE::u, and UNLOCK_PFN. Referenced by MiDispatchFault(), and MiResolveProtoPteFault().
|
|
Definition at line 1446 of file pagfault.c. References APC_LEVEL, ASSERT, DbgPrint, FALSE, IS_PTE_NOT_DEMAND_ZERO, KeDelayExecutionThread(), KernelMode, MI_GET_PAGE_FRAME_FROM_PTE, MI_GET_PROTECTION_FROM_SOFT_PTE, MI_PFN_ELEMENT, MI_PTE_LOOKUP_NEEDED, MiAccessCheck(), MiCompleteProtoPteFault(), MiFormatPte(), MiGetSubsectionAddress, MiResolveDemandZeroFault(), MiResolveMappedFileFault(), MiResolvePageFileFault(), MiResolveTransitionFault(), MM_COPY_ON_WRITE_MASK, MM_DBG_PTE_UPDATE, MM_DBG_STOP_ON_ACCVIO, MM_DEMAND_ZERO_WRITE_PTE, MM_PFN_LOCK_ASSERT, MmInfoCounters, MmIsRetryIoStatus, MmShortTime, NT_SUCCESS, NTSTATUS(), NULL, PERFINFO_SOFTFAULT, STATUS_REFAULT, _MMINFO_COUNTERS::TransitionCount, TRUE, _SUBSECTION::u, _MMPTE::u, _MMPFN::u2, and UNLOCK_PFN. Referenced by MiDispatchFault().
|
|
Definition at line 868 of file pagfault.c. References ActiveAndValid, APC_LEVEL, _ETHREAD::ApcNeeded, ASSERT, DbgPrint, FreePageList, HYDRA_PROCESS, KeEnterCriticalRegion, KeLeaveCriticalRegion, LOCK_PFN, MI_ADD_LOCKED_PAGE_CHARGE_FOR_MODIFIED_PAGE, MI_GET_PAGE_FRAME_FROM_TRANSITION_PTE, MI_MAKE_TRANSITION_PTE_VALID, MI_PFN_ELEMENT, MI_REMOVE_LOCKED_PAGE_CHARGE, MI_SET_PTE_CLEAN, MI_SET_PTE_DIRTY, MI_WRITE_VALID_PTE, MiAddValidPageToWorkingSet(), MiDecrementReferenceCount(), MiFormatPfn(), MiGetPteAddress, MiInsertPageInList(), MiRestoreTransitionPte(), MiUnlinkPageFromList(), MiWaitForInPageComplete(), MM_DBG_COLLIDED_PAGE, MmInfoCounters, MmPagedPoolEnd, MmPagedPoolStart, MmPageLocationList, MmSpecialPoolEnd, MmSpecialPoolStart, _ETHREAD::NestedFaultCount, NT_SUCCESS, NTSTATUS(), NULL, PERFINFO_SOFTFAULT, PsGetCurrentThread, _MMPFN::PteAddress, StandbyPageList, STATUS_REFAULT, _MMINFO_COUNTERS::TransitionCount, TRUE, _MMINPAGE_SUPPORT::u, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, _MMPFN::u3, UNLOCK_PFN, UNLOCK_SESSION_SPACE_WS, UNLOCK_SYSTEM_WS, UNLOCK_WS, and _MMINPAGE_SUPPORT::WaitCount. Referenced by MiDispatchFault(), and MiResolveProtoPteFault().
|
|
Definition at line 4446 of file pagfault.c. References ASSERT, _MM_SESSION_SPACE::CopyOnWriteCount, _MMINFO_COUNTERS::CopyOnWriteCount, HYDRA_PROCESS, LOCK_PFN, MI_FLUSH_SINGLE_SESSION_TB, MI_GET_PAGE_FRAME_FROM_PTE, MI_GET_SECONDARY_COLOR, MI_IS_PTE_DIRTY, MI_PFN_ELEMENT, MI_SET_ACCESSED_IN_PTE, MI_SET_PTE_DIRTY, MiDecrementShareCount(), MiEnsureAvailablePageOrWait(), MiGetVirtualAddressMappedByPte, MiInitializeCopyOnWritePfn(), MiLocateWsle(), MiMapPageInHyperSpace(), MiRemoveAnyPage(), MiUnmapPageInHyperSpace, MmInfoCounters, MmSessionSpace, NULL, PAGE_SIZE, TRUE, _MMPTE::u, _MMPFN::u1, _MMPFN::u3, UNLOCK_PFN, and WSLE_NUMBER. Referenced by MmAccessFault().
|
|
Definition at line 2335 of file pagfault.c. References ASSERT, BYTE_OFFSET, _MDL::ByteCount, DbgPrint, FALSE, HYDRA_PROCESS, KeBugCheckEx(), KernelMode, KeWaitForSingleObject(), LOCK_PFN, LOCK_SESSION_SPACE_WS, LOCK_SYSTEM_WS, LOCK_WS, _MDL::MappedSystemVa, MDL_LOCK_HELD, MDL_MAPPED_TO_SYSTEM_VA, _MDL::MdlFlags, MI_INSERT_USED_PAGETABLE_ENTRIES_IN_PFN, MI_IS_SYSTEM_CACHE_ADDRESS, MI_MAGIC_AWE_PTEFRAME, MI_PFN_ELEMENT, MI_PTE_LOOKUP_NEEDED, MI_ZERO_USED_PAGETABLE_ENTRIES_IN_PFN, MiCheckVirtualAddress(), MiFaultRetries, MiFindActualFaultingPte(), MiFreeInPageSupportBlock(), MiIoRetryLevel, MiMapPageInHyperSpace(), MiPteToProto, MiUnmapPageInHyperSpace, MiUserFaultRetries, MiUserIoRetryLevel, MiZeroPhysicalPage(), MmIsAddressValid(), MmIsRetryIoStatus, MmUnmapLockedPages(), NT_SUCCESS, NTSTATUS(), NULL, Offset, PAGE_SHIFT, PAGE_SIZE, _MMPFN::PteAddress, _MMPFN::PteFrame, STATUS_PTE_CHANGED, STATUS_REFAULT, TRUE, _MMPTE::u, _MMPFN::u1, _MMPFN::u3, and WrPageIn. Referenced by MiDispatchFault(), and MiResolveTransitionFault().
|
|
Definition at line 3883 of file pagfault.c. References FALSE, MI_IS_PHYSICAL_ADDRESS, MiGetPdeAddress, MiGetPpeAddress, MiGetPteAddress, MiGetVirtualAddressMappedByPde, TRUE, and _MMPTE::u. Referenced by IoFreeDumpRange(), IopCreateSummaryDump(), IopDriverCorrectnessProcessParams(), IopIsAddressRangeValid(), IopIsMemoryRangeReadable(), IoSetDumpRange(), IovpSeedStack(), MiDecrementShareCount(), MiDetachSession(), MiGatherMappedPages(), MiInitMachineDependent(), MiInsertPageInList(), MiInsertStandbyListAtFront(), MiLoadSystemImage(), MiMakeSystemAddressValid(), MiMakeSystemAddressValidPfn(), MiMakeSystemAddressValidPfnSystemWs(), MiMakeSystemAddressValidPfnWs(), MiRemoveImageSessionWide(), MiRestoreTransitionPte(), MiSegmentDelete(), MiSessionAddProcess(), MiSessionCommitImagePages(), MiSessionCommitPageTables(), MiSessionCreateInternal(), MiSessionRemoveProcess(), MiSessionWideReserveImageAddress(), MiSetPagingOfDriver(), MiShareSessionImage(), MiWaitForInPageComplete(), MmDbgReadCheck(), MmDbgReleaseAddress(), MmDbgTranslatePhysicalAddress(), MmDbgTranslatePhysicalAddress64(), MmDbgWriteCheck(), MmMapViewInSessionSpace(), MmSessionCreate(), MmSessionDelete(), MmSessionSetUnloadAddress(), MmSetKernelDumpRange(), MmUnmapViewInSessionSpace(), MmWorkingSetManager(), NtLockVirtualMemory(), NtUnlockVirtualMemory(), RtlWalkFrameChain(), and VerifierFreeTrackedPool().
|
|
Definition at line 45 of file pagfault.c. Referenced by MiFlushInPageSupportBlock(), MiFreeInPageSupportBlock(), MiGetInPageSupportBlock(), and MmInitSystem(). |
|
Definition at line 38 of file pagfault.c. Referenced by MiCheckVirtualAddress(), and MmInitSystem(). |
|
Definition at line 41 of file pagfault.c. |
|
Definition at line 40 of file pagfault.c. |