#include "mi.h"
Go to the source code of this file.
Defines | |
#define | X256K 0x40000 |
Functions | |
VOID | MiFreeInPageSupportBlock (IN PMMINPAGE_SUPPORT Support) |
VOID | MiRemoveMappedPtes (IN PVOID BaseAddress, IN ULONG NumberOfPtes, IN PCONTROL_AREA ControlArea, IN PMMSUPPORT WorkingSetInfo) |
LONG | MiMapCacheExceptionFilter (IN PNTSTATUS Status, IN PEXCEPTION_POINTERS ExceptionPointer) |
NTSTATUS | MmMapViewInSystemCache (IN PVOID SectionToMap, OUT PVOID *CapturedBase, IN OUT PLARGE_INTEGER SectionOffset, IN OUT PULONG CapturedViewSize) |
VOID | MiAddMappedPtes (IN PMMPTE FirstPte, IN ULONG NumberOfPtes, IN PCONTROL_AREA ControlArea) |
VOID | MmUnmapViewInSystemCache (IN PVOID BaseAddress, IN PVOID SectionToUnmap, IN ULONG AddToFront) |
VOID | MiInitializeSystemCache (IN ULONG MinimumWorkingSet, IN ULONG MaximumWorkingSet) |
BOOLEAN | MmCheckCachedPageState (IN PVOID Address, IN BOOLEAN SetToZero) |
NTSTATUS | MmCopyToCachedPage (IN PVOID Address, IN PVOID UserBuffer, IN ULONG Offset, IN SIZE_T CountInBytes, IN BOOLEAN DontZero) |
VOID | MmUnlockCachedPage (IN PVOID AddressInCache) |
Variables | |
ULONG | MmFrontOfList |
PMMPTE | MmFirstFreeSystemCache |
PMMPTE | MmLastFreeSystemCache |
PMMPTE | MmFlushSystemCache |
PMMPTE | MmSystemCachePteBase |
|
Definition at line 45 of file mapcache.c. Referenced by MiInitializeSystemCache(), and MmUnmapViewInSystemCache(). |
|
Definition at line 287 of file mapcache.c. References ASSERT, MiProtoAddressForKernelPte, MM_COLOR_MASK, _SUBSECTION::NextSubsection, PTE_SHIFT, _SUBSECTION::PtesInSubsection, _SUBSECTION::SubsectionBase, _MMPTE::u, and ZeroKernelPte. Referenced by MiMapViewInSystemSpace(), and MiShareSessionImage().
|
|
Definition at line 4252 of file pagfault.c.
|
|
Definition at line 814 of file mapcache.c. References _MMSUPPORT::AllowWorkingSetAdjustment, COMPUTE_PAGES_SPANNED, _MMWSL::FirstDynamic, _MMWSL::FirstFree, _MMWSL::HashTable, _MMWSL::HashTableSize, _MMWSL::HashTableStart, _MMWSL::HighestPermittedHashAddress, L, _MMWSL::LastEntry, _MMWSL::LastInitializedWsle, _MMWORKING_SET_EXPANSION_HEAD::ListHead, LOCK_PFN, LOCK_SYSTEM_WS, _MMSUPPORT::MaximumWorkingSetSize, MI_GET_PAGE_COLOR_FROM_PTE, MI_PTE_BASE_FOR_LOWEST_KERNEL_ADDRESS, MI_WRITE_VALID_PTE, MiGetPteAddress, MiGrowWsleHash(), MiInitializePfn(), _MMSUPPORT::MinimumWorkingSetSize, MiRemoveZeroPage(), MiSystemCacheEndExtra, MiSystemCacheStartExtra, MM_EMPTY_PTE_LIST, MM_FREE_WSLE_SHIFT, MM_MAXIMUM_WORKING_SET, MM_SYSTEM_CACHE_START, MmFirstFreeSystemCache, MmLastFreeSystemCache, MmSystemCacheEnd, MmSystemCachePteBase, MmSystemCacheStart, MmSystemCacheWorkingSetList, MmSystemCacheWs, MmSystemCacheWsle, MmSystemCacheWsMaximum, MmSystemCacheWsMinimum, MmWorkingSetExpansionHead, MMWSLE, _MMWSL::NextSlot, NULL, PAGE_ALIGN, PAGE_SHIFT, PAGE_SIZE, _MMWSL::Quota, TRUE, _MMPTE::u, _MMWSLE::u1, UNLOCK_PFN, UNLOCK_SYSTEM_WS, _MMWSL::UsedPageTableEntries, ValidKernelPte, _MMSUPPORT::VmWorkingSetList, _MMSUPPORT::WorkingSetExpansionLinks, _MMSUPPORT::WorkingSetSize, _MMWSL::Wsle, WSLE_NULL_INDEX, and X256K. Referenced by MmInitSystem().
|
|
Definition at line 1779 of file mapcache.c. References EXCEPTION_EXECUTE_HANDLER, NTSTATUS(), and Status. Referenced by MiLoadImageSection(), and MmCopyToCachedPage().
|
|
Definition at line 579 of file mapcache.c. References ASSERT, _MMPTE_FLUSH_LIST::Count, FALSE, _MMPTE_FLUSH_LIST::FlushPte, _MMPTE_FLUSH_LIST::FlushVa, LOCK_PFN, LOCK_SYSTEM_WS, MI_CAPTURE_DIRTY_BIT_TO_PFN, MI_FLUSH_ENTIRE_SESSION_TB, MI_GET_PAGE_FRAME_FROM_PTE, MI_PFN_ELEMENT, MI_SET_PTE_IN_WORKING_SET, MI_WRITE_INVALID_PTE, MI_WRITE_VALID_PTE, MiCheckControlArea(), MiDecrementShareAndValidCount, MiDecrementShareCount(), MiFlushPteList(), MiGetPteAddress, MiHydra, MiLocateWsle(), MiReleaseWsle(), MiRemoveWsle(), MM_MAXIMUM_FLUSH_COUNT, MmSystemCacheWs, MmSystemPagePtes, NULL, PAGE_SIZE, PDE_PER_PAGE, TRUE, _MMPTE::u, _MMPFN::u1, UNLOCK_PFN, UNLOCK_SYSTEM_WS, WSLE_NULL_INDEX, and ZeroKernelPte.
|
|
Definition at line 1016 of file mapcache.c. References ActiveAndValid, ASSERT, FALSE, KernelMode, LOCK_PFN, LOCK_SYSTEM_WS, MI_BARRIER_SYNCHRONIZE, MI_DETERMINE_OWNER, MI_GET_PAGE_COLOR_FROM_PTE, MI_GET_PAGE_FRAME_FROM_PTE, MI_GET_PAGE_FRAME_FROM_TRANSITION_PTE, MI_MAKE_VALID_PTE, MI_PFN_ELEMENT, MI_SET_GLOBAL_STATE, MI_SET_PTE_IN_WORKING_SET, MI_WRITE_VALID_PTE, MiGetPteAddress, MiGetSubsectionAddress, MiGetVirtualAddressMappedByPte, MiInitializePfn(), MiLocateAndReserveWsle(), MiMakeSystemAddressValidPfn(), MiPteToProto, MiRemoveZeroPage(), MiUnlinkPageFromList(), MiUpdateWsle(), MM_PTE_OWNER_MASK, MmAccessFault(), MmAvailablePages, MmSystemCacheWorkingSetList, MmSystemCacheWs, MmSystemCacheWsle, NULL, _MMPFN::OriginalPte, PsGetCurrentThread, _MMPFN::PteFrame, TRUE, _MMPTE::u, _MMWSLE::u1, _MMPFN::u1, _MMPFN::u2, _MMPFN::u3, UNLOCK_PFN, UNLOCK_SYSTEM_WS, and WSLE_NUMBER. Referenced by CcCopyRead(), CcFastCopyRead(), CcMapAndRead(), and CcPerformReadAhead().
|
|
Definition at line 1274 of file mapcache.c. References ActiveAndValid, APC_LEVEL, _ETHREAD::ApcNeeded, ASSERT, Buffer, CHAR, Copy, DISPATCH_LEVEL, Event(), EXCEPTION_EXECUTE_HANDLER, FALSE, IoRetryIrpCompletions(), KeDelayExecutionThread(), KeEnterCriticalRegion, KeLeaveCriticalRegion, KeLowerIrql(), KeRaiseIrql(), KernelMode, KeSetEvent(), LOCK_PFN, LOCK_SYSTEM_WS, MI_ADD_LOCKED_PAGE_CHARGE, MI_ADD_LOCKED_PAGE_CHARGE_FOR_MODIFIED_PAGE, MI_DETERMINE_OWNER, MI_GET_PAGE_COLOR_FROM_PTE, MI_GET_PAGE_FRAME_FROM_PTE, MI_GET_PAGE_FRAME_FROM_TRANSITION_PTE, MI_MAGIC_AWE_PTEFRAME, MI_MAKE_VALID_PTE, MI_PFN_ELEMENT, MI_REMOVE_LOCKED_PAGE_CHARGE, MI_SET_GLOBAL_STATE, MI_SET_PTE_DIRTY, MI_SET_PTE_IN_WORKING_SET, MI_WRITE_VALID_PTE, MiEnsureAvailablePageOrWait(), MiFreeInPageSupportBlock(), MiGetInPageSupportBlock(), MiGetPteAddress, MiGetSubsectionAddress, MiGetVirtualAddressMappedByPte, MiInitializeTransitionPfn(), MiLocateAndReserveWsle(), MiMakeSystemAddressValidPfn(), MiMapCacheExceptionFilter(), MiPteToProto, MiRemoveAnyPage(), MiUnlinkPageFromList(), MiUpdateWsle(), MM_PTE_OWNER_MASK, MmResetPageFaultReadAhead, MmSavePageFaultReadAhead, MmSetPageFaultReadAhead, MmShortTime, MmSystemCacheWorkingSetList, MmSystemCacheWs, MmSystemCacheWsle, _ETHREAD::NestedFaultCount, NTSTATUS(), NULL, _CONTROL_AREA::NumberOfPfnReferences, _CONTROL_AREA::NumberOfUserReferences, Offset, _MMPFN::OriginalPte, PAGE_SIZE, PsGetCurrentThread, _MMPFN::PteAddress, _MMPFN::PteFrame, TRUE, _MMPTE::u, _MMWSLE::u1, _MMPFN::u1, _MMPFN::u2, _MMPFN::u3, UNLOCK_PFN, UNLOCK_SYSTEM_WS, and WSLE_NUMBER. Referenced by CcMapAndCopy().
|
|
Definition at line 63 of file mapcache.c. References ASSERT, _SEGMENT::ControlArea, KeBugCheckEx(), KeFlushEntireTb(), L, LOCK_PFN, MiGetPteAddress, MiGetVirtualAddressMappedByPte, MiProtoAddressForKernelPte, MM_COLOR_MASK, MM_EMPTY_LIST, MM_EMPTY_PTE_LIST, MmFirstFreeSystemCache, MmFlushSystemCache, MmSystemCacheEnd, MmSystemCachePteBase, _SUBSECTION::NextSubsection, NULL, _CONTROL_AREA::NumberOfMappedViews, _CONTROL_AREA::NumberOfSectionReferences, _CONTROL_AREA::NumberOfSystemCacheViews, PAGE_SHIFT, PAGE_SIZE, PSECTION, PTE_SHIFT, _SUBSECTION::PtesInSubsection, _CONTROL_AREA::Segment, _SUBSECTION::SubsectionBase, TRUE, _MMPTE::u, _CONTROL_AREA::u, UNLOCK_PFN, and ZeroKernelPte. Referenced by CcGetVacbMiss().
|
|
Definition at line 1833 of file mapcache.c. References ASSERT, KeBugCheckEx(), LOCK_PFN, MI_PFN_ELEMENT, MI_REMOVE_LOCKED_PAGE_CHARGE, MiGetPteAddress, _MMPTE::u, _MMPFN::u3, and UNLOCK_PFN. Referenced by CcFreeActiveVacb().
|
|
Definition at line 381 of file mapcache.c. References APC_LEVEL, ASSERT, _SEGMENT::ControlArea, FALSE, LOCK_PFN, LOCK_SYSTEM_WS, MI_CAPTURE_DIRTY_BIT_TO_PFN, MI_GET_PAGE_FRAME_FROM_PTE, MI_PFN_ELEMENT, MI_SET_PTE_IN_WORKING_SET, MI_WRITE_INVALID_PTE, MiCheckControlArea(), MiDecrementShareAndValidCount, MiDecrementShareCount(), MiGetPteAddress, MiLocateWsle(), MiReleaseWsle(), MiRemoveWsle(), MM_EMPTY_PTE_LIST, MmFlushSystemCache, MmFrontOfList, MmLastFreeSystemCache, MmSystemCachePteBase, MmSystemCacheWorkingSetList, MmSystemCacheWs, NULL, _CONTROL_AREA::NumberOfMappedViews, _CONTROL_AREA::NumberOfSystemCacheViews, PAGE_SIZE, PSECTION, _CONTROL_AREA::Segment, TRUE, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, UNLOCK_PFN, UNLOCK_SYSTEM_WS, WSLE_NUMBER, X256K, and ZeroKernelPte. Referenced by CcUnmapVacb().
|
|
Definition at line 47 of file mapcache.c. Referenced by MiInitializeSystemCache(), and MmMapViewInSystemCache(). |
|
Definition at line 51 of file mapcache.c. Referenced by MmMapViewInSystemCache(), and MmUnmapViewInSystemCache(). |
|
Definition at line 30 of file mapcache.c. Referenced by MiDecrementReferenceCount(), and MmUnmapViewInSystemCache(). |
|
Definition at line 49 of file mapcache.c. Referenced by MiInitializeSystemCache(), and MmUnmapViewInSystemCache(). |
|
Definition at line 53 of file mapcache.c. Referenced by MiInitializeSystemCache(), MmMapViewInSystemCache(), and MmUnmapViewInSystemCache(). |