#include "mi.h"
Go to the source code of this file.
Classes | |
struct | _MI_BAD_TAGS |
Defines | |
#define | MM_SMALL_ALLOCATIONS 4 |
#define | MI_MEMORY_MAKER(Thread) |
#define | MI_THREE_SECONDS 3 |
#define | MiInsertContiguousTag(a, b, c) |
Typedefs | |
typedef _MI_BAD_TAGS | MI_BAD_TAGS |
typedef _MI_BAD_TAGS * | PMI_BAD_TAGS |
Functions | |
VOID | MiInitializeSpecialPool (VOID) |
VOID | MiInitializeSpecialPoolCriteria (IN VOID) |
VOID | MiSpecialPoolTimerDispatch (IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2) |
PVOID | MmSqueezeBadTags (IN SIZE_T NumberOfBytes, IN ULONG Tag, IN POOL_TYPE PoolType, IN ULONG SpecialPoolType) |
LOGICAL | MmSetSpecialPool (IN LOGICAL Enable) |
PVOID | MiAllocateSpecialPool (IN SIZE_T NumberOfBytes, IN ULONG Tag, IN POOL_TYPE PoolType, IN ULONG SpecialPoolType) |
VOID | MmFreeSpecialPool (IN PVOID P) |
LOGICAL | MiProtectSpecialPool (IN PVOID VirtualAddress, IN ULONG NewProtect) |
VOID | MiMakeSpecialPoolPagable (IN PVOID VirtualAddress, IN PMMPTE PointerPte) |
VOID | MiProtectFreeNonPagedPool (IN PVOID VirtualAddress, IN ULONG SizeInPages) |
LOGICAL | MiUnProtectFreeNonPagedPool (IN PVOID VirtualAddress, IN ULONG SizeInPages) |
VOID | MiProtectedPoolInsertList (IN PLIST_ENTRY ListHead, IN PLIST_ENTRY Entry, IN LOGICAL InsertHead) |
VOID | MiProtectedPoolRemoveEntryList (IN PLIST_ENTRY Entry) |
POOL_TYPE | MmDeterminePoolType (IN PVOID VirtualAddress) |
PVOID | MiSessionPoolVector (VOID) |
VOID | MiSessionPoolAllocated (IN PVOID VirtualAddress, IN SIZE_T NumberOfBytes, IN POOL_TYPE PoolType) |
VOID | MiSessionPoolFreed (IN PVOID VirtualAddress, IN SIZE_T NumberOfBytes, IN POOL_TYPE PoolType) |
LOGICAL | MmResourcesAvailable (IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN EX_POOL_PRIORITY Priority) |
VOID | MiFreeNonPagedPool (IN PVOID StartingAddress, IN PFN_NUMBER NumberOfPages) |
PVOID | MiAllocatePoolPages (IN POOL_TYPE PoolType, IN SIZE_T SizeInBytes, IN ULONG IsLargeSessionAllocation) |
ULONG | MiFreePoolPages (IN PVOID StartingAddress) |
VOID | MiInitializeNonPagedPool (VOID) |
SIZE_T | MmQuerySpecialPoolBlockSize (IN PVOID P) |
VOID | MiInitializeSpecialPoolCriteria (VOID) |
VOID | MiEnableRandomSpecialPool (IN LOGICAL Enable) |
PVOID | MmAllocateSpecialPool (IN SIZE_T NumberOfBytes, IN ULONG Tag, IN POOL_TYPE PoolType, IN ULONG SpecialPoolType) |
VOID | MiCheckSessionPoolAllocations (VOID) |
NTSTATUS | MiInitializeSessionPool (VOID) |
VOID | MiFreeSessionPoolBitMaps (VOID) |
PVOID | MiFindContiguousMemory (IN PFN_NUMBER LowestPfn, IN PFN_NUMBER HighestPfn, IN PFN_NUMBER BoundaryPfn, IN PFN_NUMBER SizeInPages, IN PVOID CallingAddress) |
LOGICAL | MmIsHydraAddress (IN PVOID VirtualAddress) |
LOGICAL | MmIsSpecialPoolAddressFree (IN PVOID VirtualAddress) |
LOGICAL | MmProtectSpecialPool (IN PVOID VirtualAddress, IN ULONG NewProtect) |
Variables | |
ULONG | MmPagedPoolCommit |
PFN_NUMBER | MmAllocatedNonPagedPool |
PFN_NUMBER | MiEndOfInitialPoolFrame |
PVOID | MmNonPagedPoolExpansionStart |
LIST_ENTRY | MmNonPagedPoolFreeListHead [MI_MAX_FREE_LIST_HEADS] |
POOL_DESCRIPTOR | NonPagedPoolDescriptor |
LOGICAL | MmPagedPoolMaximumDesired |
ULONG | MmUnusedSegmentForceFree |
ULONG | MmSpecialPoolTag |
PVOID | MmSpecialPoolStart |
PVOID | MmSpecialPoolEnd |
ULONG | MmSpecialPoolRejected [5] |
LOGICAL | MmSpecialPoolCatchOverruns = TRUE |
PMMPTE | MiSpecialPoolFirstPte |
PMMPTE | MiSpecialPoolLastPte |
ULONG | MiSpecialPagesNonPaged |
ULONG | MiSpecialPagesPagable |
ULONG | MmSpecialPagesInUse |
ULONG | MiSpecialPagesNonPagedPeak |
ULONG | MiSpecialPagesPagablePeak |
ULONG | MiSpecialPagesInUsePeak |
ULONG | MiSpecialPagesNonPagedMaximum |
ULONG | MiSpecialPoolPtes |
LOGICAL | MiSpecialPoolEnabled = TRUE |
MI_BAD_TAGS | MiBadTags |
KTIMER | MiSpecialPoolTimer |
KDPC | MiSpecialPoolTimerDpc |
LARGE_INTEGER | MiTimerDueTime |
ULONG | InitializationPhase |
|
Value:
Definition at line 143 of file allocpag.c. Referenced by MiAllocatePoolPages(), and MmResourcesAvailable(). |
|
Definition at line 3197 of file allocpag.c. Referenced by MiInitializeSpecialPoolCriteria(). |
|
Definition at line 4564 of file allocpag.c. Referenced by MiFindContiguousMemory(). |
|
Definition at line 122 of file allocpag.c. Referenced by MiFreePoolPages(). |
|
|
|
|
|
Definition at line 807 of file allocpag.c. References ActiveAndValid, _MM_PAGED_POOL_INFO::AllocatedPagedPool, ASSERT, BASE_POOL_TYPE_MASK, BYTES_TO_PAGES, _MM_SESSION_SPACE::CommittedPages, CONSISTENCY_LOCK_PFN2, CONSISTENCY_UNLOCK_PFN2, DbgPrint, _MM_PAGED_POOL_INFO::EndOfPagedPoolBitmap, FALSE, _MMWSL::FirstDynamic, _MM_PAGED_POOL_INFO::FirstPteForPagedPool, Index, KeBugCheckEx(), KeSetEvent(), KSEG0_BASE, KSEG2_BASE, L, _MM_PAGED_POOL_INFO::LastPteForPagedPool, _MMFREE_POOL_ENTRY::List, List, LOCK_PFN, LOCK_PFN2, LOCK_SESSION_SPACE_WS, MI_CONVERT_PHYSICAL_TO_PFN, MI_GET_PAGE_COLOR_FROM_PTE, MI_GET_PAGE_FRAME_FROM_PTE, MI_IS_PHYSICAL_ADDRESS, MI_MAX_FREE_LIST_HEADS, MI_MEMORY_MAKER, MI_PFN_ELEMENT, MI_UNUSED_SEGMENTS_SURPLUS, MI_WRITE_VALID_PTE, MiAddValidPageToWorkingSet(), MiChargeCommitmentCantExpand(), MiFillMemoryPte, MiFreeNonPagedPool(), MiGetPdeAddress, MiGetPteAddress, MiGetVirtualAddressMappedByPte, MiInitializePfn(), MiInitializePfnForOtherProcess(), MiIssuePageExtendRequestNoWait(), MiLocateWsle(), MiProtectedPoolInsertList(), MiProtectedPoolRemoveEntryList(), MiProtectFreeNonPagedPool(), MiRemoveAnyPage(), MiReserveSystemPtes(), MiSessionPoolAllocated(), MiSwapWslEntries(), MiUnProtectFreeNonPagedPool(), MM_BUMP_COUNTER, MM_BUMP_SESS_COUNTER, MM_DBG_COMMIT_NONPAGED_POOL_EXPANSION, MM_DBG_COMMIT_PAGED_POOL_PAGES, MM_DBG_COMMIT_PAGED_POOL_PAGETABLE, MM_DBG_SESSION_COMMIT_PAGEDPOOL_PAGES, MM_DBG_SESSION_PAGEDPOOL_PAGETABLE_ALLOC1, MM_DEMAND_ZERO_WRITE_PTE, MM_FREE_POOL_SIGNATURE, MM_KERNEL_DEMAND_ZERO_PTE, MM_KERNEL_NOACCESS_PTE, MM_KSEG2_BASE, MM_TRACK_COMMIT, MmAllocatedNonPagedPool, MmAvailablePages, MMFREE_POOL_ENTRY, MmKseg2Frame, MmNonPagedMustSucceed, MmNonPagedPoolExpansionStart, MmNonPagedPoolFreeListHead, MmNumberOfFreeNonPagedPool, MmPageAlignedPoolBase, MmPagedPoolCommit, MmPagedPoolInfo, MmProtectFreedNonPagedPool, MmResidentAvailablePages, MmSessionBase, MmSessionSpace, MmSubsectionBase, MmSubsectionTopPage, MmSystemPageDirectory, MmSystemPagePtes, MmUnusedSegmentCleanup, MmUnusedSegmentForceFree, MmUnusedSegmentList, MUST_SUCCEED_POOL_TYPE_MASK, _MM_PAGED_POOL_INFO::NextPdeForPagedPoolExpansion, _MM_SESSION_SPACE::NonPagablePages, NonPagedPool, NonPagedPoolDescriptor, NonPagedPoolExpansion, NULL, _MMPFN::OriginalPte, PAGE_SHIFT, PAGE_SIZE, PagedPool, _MM_PAGED_POOL_INFO::PagedPoolAllocationMap, _MM_PAGED_POOL_INFO::PagedPoolCommit, _MM_PAGED_POOL_INFO::PagedPoolHint, _MM_SESSION_SPACE::PagedPoolInfo, _MM_PAGED_POOL_INFO::PagedPoolLargeSessionAllocationMap, _MM_SESSION_SPACE::PagedPoolStart, _MM_SESSION_SPACE::PageTables, PDE_PER_PAGE, PMM_PAGED_POOL_INFO, PMMFREE_POOL_ENTRY, POOL_VERIFIER_MASK, PsGetCurrentThread, PTE_PER_PAGE, _MMPFN::PteAddress, _MMPFN::PteFrame, RtlClearBits(), RtlFindClearBitsAndSet(), RtlSetBits(), SESSION_POOL_MASK, _MM_SESSION_SPACE::SessionPageDirectoryIndex, _MMFREE_POOL_ENTRY::Signature, _MMFREE_POOL_ENTRY::Size, _POOL_DESCRIPTOR::TotalBigPages, _POOL_DESCRIPTOR::TotalPages, TRUE, _MMPTE::u, _MMWSLE::u1, _MMPFN::u1, _MMPFN::u2, _MMPFN::u3, UNLOCK_PFN, UNLOCK_PFN2, UNLOCK_SESSION_SPACE_WS, ValidKernelPde, ValidKernelPdeLocal, ValidKernelPte, VerifierLargePagedPoolMap, _MM_SESSION_SPACE::Vm, _MMSUPPORT::VmWorkingSetList, and _MM_SESSION_SPACE::Wsle. Referenced by AllocatePoolInternal(), ExAllocatePool(), ExAllocatePoolWithTag(), ExpAddTagForBigPages(), ExpInsertPoolTracker(), InitializePool(), and MiInitializeSystemPtes().
|
|
Definition at line 3472 of file allocpag.c. References APC_LEVEL, ASSERT, BASE_POOL_TYPE_MASK, DISPATCH_LEVEL, FALSE, Header, KeBugCheckEx(), KeQueryTickCount(), LOCK_PFN2, MI_GET_PAGE_COLOR_FROM_PTE, MI_SET_PTE_DIRTY, MI_SPECIAL_POOL_PAGABLE, MI_SPECIAL_POOL_PTE_NONPAGABLE, MI_SPECIAL_POOL_PTE_PAGABLE, MI_SPECIAL_POOL_VERIFIER, MI_WRITE_VALID_PTE, MiChargeCommitmentCantExpand(), MiGetVirtualAddressMappedByPte, MiInitializePfn(), MiMakeSpecialPoolPagable(), MiNumberOfExtraSystemPdes, MiRemoveAnyPage(), MiSpecialPagesInUsePeak, MiSpecialPagesNonPaged, MiSpecialPagesNonPagedMaximum, MiSpecialPagesNonPagedPeak, MiSpecialPagesPagable, MiSpecialPagesPagablePeak, MiSpecialPoolEnabled, MiSpecialPoolFirstPte, MM_BUMP_COUNTER, MM_EMPTY_PTE_LIST, MmAvailablePages, MmNumberOfPagingFiles, MmResidentAvailablePages, MMSECT, MmSpecialPagesInUse, MmSpecialPoolCatchOverruns, MmSpecialPoolRejected, MmSystemPteBase, NonPagedPool, NULL, PAGE_SIZE, PagedPool, POOL_OVERHEAD, POOL_QUOTA_MASK, POOL_VERIFIER_MASK, TRUE, _MMPTE::u, UNLOCK_PFN2, and ValidKernelPte. Referenced by MmAllocateSpecialPool().
|
|
Definition at line 4116 of file allocpag.c. References ASSERT, DbgPrint, else, KeBugCheckEx(), MiGetPdeAddress, MiGetVirtualAddressMappedByPte, MM_KERNEL_NOACCESS_PTE, MmSessionSpace, _MM_SESSION_SPACE::NonPagedPoolAllocations, _MM_SESSION_SPACE::NonPagedPoolBytes, PAGED_CODE, _MM_SESSION_SPACE::PagedPoolAllocations, _MM_SESSION_SPACE::PagedPoolBytes, _MM_SESSION_SPACE::PagedPoolEnd, _MM_SESSION_SPACE::PagedPoolStart, PTE_PER_PAGE, _MM_SESSION_SPACE::SessionId, and _MMPTE::u. Referenced by MiDereferenceSession().
|
|
Definition at line 3398 of file allocpag.c. References MiBadTags, and _MI_BAD_TAGS::RandomizerEnabled. Referenced by MiApplyDriverVerifier(), and MiVerifyingDriverUnloading().
|
|
Definition at line 4569 of file allocpag.c. References ActiveAndValid, ASSERT, _PHYSICAL_MEMORY_RUN::BasePage, ExFreePool(), ExInsertPoolTag(), ExLockPool(), ExPageLockHandle, ExUnlockPool(), FALSE, FreePageList, Index, List, _MMFREE_POOL_ENTRY::List, LOCK_PFN2, MI_CHECK_PAGE_ALIGNMENT, MI_CONVERT_PHYSICAL_TO_PFN, MI_GET_PAGE_COLOR_FROM_VA, MI_GET_PAGE_FRAME_FROM_PTE, MI_IS_PHYSICAL_ADDRESS, MI_MAX_FREE_LIST_HEADS, MI_PFN_ELEMENT, MI_WRITE_VALID_PTE, MiChargeCommitmentCantExpand(), MiCheckForContiguousMemory(), MiGetPteAddress, MiGetVirtualAddressMappedByPte, MiInsertContiguousTag, MiProtectedPoolRemoveEntryList(), MiProtectFreeNonPagedPool(), MiReserveSystemPtes(), MiRestoreTransitionPte(), MiUnlinkFreeOrZeroedPage(), MiUnlinkPageFromList(), MiUnProtectFreeNonPagedPool(), MM_BUMP_COUNTER, MM_COLOR_MASK, MM_DBG_COMMIT_CONTIGUOUS_PAGES, MM_DEMAND_ZERO_WRITE_PTE, MM_FREE_POOL_SIGNATURE, MM_TRACK_COMMIT, MmAllocatedNonPagedPool, MmDynamicMemoryMutex, MmLockPagableSectionByHandle(), MmNonPagedPoolFreeListHead, MmNumberOfFreeNonPagedPool, MmPhysicalMemoryBlock, MmProtectFreedNonPagedPool, MmResidentAvailablePages, MmUnlockPagableImageSection(), NonPagedPool, NonPagedPoolDescriptor, NonPagedPoolExpansion, NULL, _PHYSICAL_MEMORY_DESCRIPTOR::NumberOfRuns, _MMPFN::OriginalPte, PAGE_ALIGN, PAGE_SHIFT, PAGE_SIZE, _PHYSICAL_MEMORY_RUN::PageCount, PAGED_CODE, _MMPFN::PteAddress, _MMPFN::PteFrame, _PHYSICAL_MEMORY_DESCRIPTOR::Run, _MMFREE_POOL_ENTRY::Signature, _MMFREE_POOL_ENTRY::Size, StandbyPageList, _POOL_DESCRIPTOR::TotalBigPages, TRUE, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, _MMPFN::u3, UNLOCK_PFN2, ValidKernelPte, and ZeroedPageList. Referenced by MiAllocateContiguousMemory().
|
|
Definition at line 708 of file allocpag.c. References ASSERT, KeFlushSingleTb(), LOCK_PFN2, MI_GET_PAGE_FRAME_FROM_PTE, MI_MAKING_MULTIPLE_PTES_INVALID, MI_PFN_ELEMENT, MI_SET_PFN_DELETED, MiDecrementReferenceCount(), MiGetPteAddress, MiReleaseSystemPtes(), MiReturnCommitment(), MM_BUMP_COUNTER, MM_DBG_COMMIT_RETURN_NONPAGED_POOL_EXPANSION, MM_TRACK_COMMIT, MmResidentAvailablePages, NonPagedPoolExpansion, PAGE_SIZE, StandbyPageList, TRUE, _MMPTE::u, _MMPFN::u2, _MMPFN::u3, UNLOCK_PFN2, VOID(), and ZeroKernelPte. Referenced by MiAllocatePoolPages(), and MiFreePoolPages().
|
|
Definition at line 1778 of file allocpag.c. References _MM_PAGED_POOL_INFO::AllocatedPagedPool, ASSERT, _MM_SESSION_SPACE::CommittedPages, CONSISTENCY_LOCK_PFN2, CONSISTENCY_UNLOCK_PFN2, DbgPrint, _MM_PAGED_POOL_INFO::EndOfPagedPoolBitmap, FALSE, _MM_PAGED_POOL_INFO::FirstPteForPagedPool, Index, KeBugCheckEx(), L, _MMFREE_POOL_ENTRY::List, LOCK_SESSION_SPACE_WS, MI_CONVERT_PHYSICAL_TO_PFN, MI_GET_PAGE_FRAME_FROM_PTE, MI_IS_PHYSICAL_ADDRESS, MI_IS_SESSION_POOL_ADDRESS, MI_MAGIC_AWE_PTEFRAME, MI_MAX_FREE_LIST_HEADS, MI_PFN_ELEMENT, MiDeleteSystemPagableVm(), MiEndOfInitialPoolFrame, MiFreeNonPagedPool(), MiGetPteAddress, MiGetVirtualAddressMappedByPte, MiHydra, MiProtectedPoolInsertList(), MiProtectedPoolRemoveEntryList(), MiProtectFreeNonPagedPool(), MiReturnCommitment(), MiSessionPoolFreed(), MiUnProtectFreeNonPagedPool(), MM_BUMP_SESS_COUNTER, MM_DBG_COMMIT_RETURN_PAGED_POOL_PAGES, MM_DBG_SESSION_COMMIT_POOL_FREED, MM_FREE_POOL_SIGNATURE, MM_KERNEL_NOACCESS_PTE, MM_SMALL_ALLOCATIONS, MM_TRACK_COMMIT, MmAllocatedNonPagedPool, MmExpandedPoolBitPosition, MmHighestPhysicalPage, MmMustSucceedPoolBitPosition, MmNonPagedMustSucceed, MmNonPagedPoolEnd, MmNonPagedPoolExpansionStart, MmNonPagedPoolFreeListHead, MmNonPagedPoolStart, MmNumberOfFreeNonPagedPool, MmPageAlignedPoolBase, MmPagedPoolCommit, MmPagedPoolEnd, MmPagedPoolInfo, MmPagedPoolStart, MmPfnDatabase, MmProtectFreedNonPagedPool, MmSessionSpace, MmSizeOfNonPagedPoolInBytes, MmSizeOfPagedPoolInBytes, NoAccessPte, NonPagedPool, NULL, _MMFREE_POOL_ENTRY::Owner, PAGE_SHIFT, PAGE_SIZE, PagedPool, _MM_PAGED_POOL_INFO::PagedPoolAllocationMap, _MM_PAGED_POOL_INFO::PagedPoolCommit, _MM_PAGED_POOL_INFO::PagedPoolHint, _MM_SESSION_SPACE::PagedPoolInfo, _MM_PAGED_POOL_INFO::PagedPoolLargeSessionAllocationMap, _MM_SESSION_SPACE::PagedPoolStart, POOL_TYPE, _MMPFN::PteAddress, _MMPFN::PteFrame, RtlClearBits(), _MMFREE_POOL_ENTRY::Signature, _MMFREE_POOL_ENTRY::Size, TRUE, _MMPTE::u, _MMPFN::u3, UNLOCK_SESSION_SPACE_WS, VerifierFreeTrackedPool(), and VerifierLargePagedPoolMap. Referenced by DeallocatePoolInternal(), ExFreePool(), ExFreePoolWithTag(), ExpAddTagForBigPages(), ExpInsertPoolTracker(), and MiInitMachineDependent().
|
|
|
Definition at line 2476 of file allocpag.c. References ASSERT, BYTES_TO_PAGES, Index, MI_CONVERT_PHYSICAL_TO_PFN, MI_GET_PAGE_FRAME_FROM_PTE, MI_IS_PHYSICAL_ADDRESS, MI_MAX_FREE_LIST_HEADS, MiEndOfInitialPoolFrame, MiGetPteAddress, MiInitializeSystemPtes(), MM_FREE_POOL_SIGNATURE, MmExpandedPoolBitPosition, MmMaximumNonPagedPoolInBytes, MmMustSucceedPoolBitPosition, MmNonPagedMustSucceed, MmNonPagedPoolExpansionStart, MmNonPagedPoolFreeListHead, MmNonPagedPoolStart, MmNumberOfFreeNonPagedPool, MmSizeOfNonPagedMustSucceed, MmSizeOfNonPagedPoolInBytes, NonPagedPoolExpansion, PAGE_SIZE, PAGED_CODE, _MMFREE_POOL_ENTRY::Signature, Size, and _MMPTE::u. Referenced by MiInitMachineDependent().
|
|
Definition at line 4222 of file allocpag.c. References _MM_PAGED_POOL_INFO::AllocatedPagedPool, ASSERT, _MM_SESSION_SPACE::CommittedPages, _MM_PAGED_POOL_INFO::EndOfPagedPoolBitmap, ExInitializeFastMutex, ExpInitializePoolDescriptor(), FALSE, _MM_PAGED_POOL_INFO::FirstPteForPagedPool, Index, _MM_PAGED_POOL_INFO::LastPteForPagedPool, LOCK_PFN, MI_FLUSH_SINGLE_SESSION_TB, MI_GET_PAGE_COLOR_FROM_PTE, MI_PFN_ELEMENT, MI_SESSION_POOL, MI_SESSION_POOL_SIZE, MI_SET_PFN_DELETED, MI_WRITE_VALID_PTE, MiChargeCommitment(), MiCreateBitMap, MiDecrementShareAndValidCount, MiDecrementShareCountOnly, MiEnsureAvailablePageOrWait(), MiFillMemoryPte, MiFreeSessionPoolBitMaps(), MiGetPdeAddress, MiGetPdeSessionIndex, MiGetPteAddress, MiInitializePfnForOtherProcess(), MiRemoveAnyPage(), MiReturnCommitment(), MM_BUMP_COUNTER, MM_BUMP_SESS_COUNTER, MM_BUMP_SESSION_FAILURES, MM_DBG_COMMIT_RETURN_PAGED_POOL_PAGES, MM_DBG_COMMIT_RETURN_SESSION_POOL_PAGE_TABLES, MM_DBG_COMMIT_SESSION_POOL_PAGE_TABLES, MM_DBG_SESSION_PAGEDPOOL_PAGETABLE_ALLOC, MM_DBG_SESSION_PAGEDPOOL_PAGETABLE_FREE_FAIL1, MM_KERNEL_NOACCESS_PTE, MM_SESSION_FAILURE_NO_COMMIT, MM_SESSION_FAILURE_NO_NONPAGED_POOL, MM_SESSION_FAILURE_NO_RESIDENT, MM_TRACK_COMMIT, MmAvailablePages, MmResidentAvailablePages, MmSessionSpace, _MM_PAGED_POOL_INFO::NextPdeForPagedPoolExpansion, _MM_SESSION_SPACE::NonPagablePages, NonPagedPool, NULL, PAGE_SHIFT, PAGE_SIZE, _MM_SESSION_SPACE::PagedPool, _MM_PAGED_POOL_INFO::PagedPoolAllocationMap, _MM_SESSION_SPACE::PagedPoolBasePde, _MM_PAGED_POOL_INFO::PagedPoolCommit, _MM_SESSION_SPACE::PagedPoolEnd, _MM_PAGED_POOL_INFO::PagedPoolHint, _MM_SESSION_SPACE::PagedPoolInfo, _MM_PAGED_POOL_INFO::PagedPoolLargeSessionAllocationMap, _MM_SESSION_SPACE::PagedPoolMutex, PagedPoolSession, _MM_SESSION_SPACE::PagedPoolStart, _MM_SESSION_SPACE::PageTables, PPOOL_DESCRIPTOR, PTE_PER_PAGE, _MMPFN::PteFrame, RtlClearAllBits(), RtlClearBits(), RtlSetAllBits(), SESSION_GLOBAL, _MM_SESSION_SPACE::SessionPageDirectoryIndex, TRUE, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, UNLOCK_PFN, ValidKernelPdeLocal, and ZeroKernelPte. Referenced by MiSessionCreateInternal().
|
|
Definition at line 2974 of file allocpag.c. References ExpMultiUserTS, FALSE, LOCK_PFN, MiGetVirtualAddressMappedByPte, MiHydra, MiNumberOfExtraSystemPdes, MiRequestedSystemPtes, MiReserveSystemPtes(), MiSpecialPagesNonPagedMaximum, MiSpecialPoolFirstPte, MiSpecialPoolLastPte, MiSpecialPoolPtes, MM_EMPTY_PTE_LIST, MM_SPECIAL_POOL_PTES, MmNumberOfPhysicalPages, MmNumberOfSystemPtes, MmPagedPoolMaximumDesired, MmResidentAvailablePages, MmSpecialPoolEnd, MmSpecialPoolStart, MmSpecialPoolTag, MmSystemPteBase, MmVerifyDriverBufferLength, NULL, PTE_PER_PAGE, SystemPteSpace, TRUE, _MMPTE::u, and UNLOCK_PFN.
|
|
Definition at line 3270 of file allocpag.c. References _MI_BAD_TAGS::AllOthers, _MI_BAD_TAGS::Enabled, InitializationPhase, KeInitializeDpc(), KeInitializeTimer(), KeQuerySystemTime(), KeSetTimerEx(), MI_THREE_SECONDS, MiBadTags, MiSpecialPoolTimer, MiSpecialPoolTimerDispatch(), MiSpecialPoolTimerDpc, MiTimerDueTime, MmSpecialPoolTag, NULL, _MI_BAD_TAGS::RandomizerEnabled, RtlTimeToTimeFields(), _MI_BAD_TAGS::TargetChar, and TimeFields.
|
|
|
|
Definition at line 4034 of file allocpag.c. References _MMSUPPORT::AllowWorkingSetAdjustment, APC_LEVEL, ASSERT, CONSISTENCY_LOCK_PFN, CONSISTENCY_UNLOCK_PFN, LOCK_EXPANSION_IF_ALPHA, LOCK_SYSTEM_WS, MI_GET_PAGE_FRAME_FROM_TRANSITION_PTE, MI_PFN_ELEMENT, MiAddValidPageToWorkingSet(), MiGrowWsleHash(), MM_GROW_WSLE_HASH, MmSystemCacheWs, PsGetCurrentThread, TRUE, _MMPFN::u1, UNLOCK_EXPANSION_IF_ALPHA, and UNLOCK_SYSTEM_WS. Referenced by MiAllocateSpecialPool().
|
|
Definition at line 282 of file allocpag.c. References MiProtectFreeNonPagedPool(), MiUnProtectFreeNonPagedPool(), and TRUE. Referenced by MiAllocatePoolPages(), and MiFreePoolPages().
|
|
Definition at line 365 of file allocpag.c. References MiProtectFreeNonPagedPool(), MiUnProtectFreeNonPagedPool(), and TRUE. Referenced by MiAllocatePoolPages(), MiFindContiguousMemory(), and MiFreePoolPages().
|
|
Definition at line 150 of file allocpag.c. References KeFlushSingleTb(), MI_IS_PHYSICAL_ADDRESS, MiGetPteAddress, PAGE_SIZE, TRUE, and _MMPTE::u. Referenced by MiAllocatePoolPages(), MiFindContiguousMemory(), MiFreePoolPages(), MiProtectedPoolInsertList(), MiProtectedPoolRemoveEntryList(), and MmSetKernelDumpRange().
|
|
Definition at line 5278 of file allocpag.c. References ASSERT, EXCEPTION_EXECUTE_HANDLER, FALSE, KeFlushSingleTb(), LOCK_PFN2, LOCK_SYSTEM_WS, MI_CAPTURE_DIRTY_BIT_TO_PFN, MI_MAKE_VALID_PTE, MI_PFN_ELEMENT, MI_SPECIAL_POOL_PTE_NONPAGABLE, MI_SPECIAL_POOL_PTE_PAGABLE, MI_WRITE_VALID_PTE_NEW_PROTECTION, MiGetPteAddress, MiMakeProtectionMask(), MiRemovePageFromWorkingSet(), MM_EXECUTE_WRITECOPY, MM_NOACCESS, MM_NOCACHE, MM_WRITECOPY, MmSpecialPoolEnd, MmSystemCacheWs, _MMPFN::OriginalPte, TRUE, _MMPTE::u, _MMPFN::u1, UNLOCK_PFN2, UNLOCK_SYSTEM_WS, and WSLE_NUMBER. Referenced by MmProtectSpecialPool().
|
|
Definition at line 505 of file allocpag.c. References ASSERT, BASE_POOL_TYPE_MASK, FALSE, MI_IS_SESSION_POOL_ADDRESS, MmSessionSpace, NonPagedPool, _MM_SESSION_SPACE::NonPagedPoolAllocations, _MM_SESSION_SPACE::NonPagedPoolBytes, _MM_SESSION_SPACE::PagedPoolAllocations, _MM_SESSION_SPACE::PagedPoolBytes, and TRUE. Referenced by ExAllocatePoolWithTag(), and MiAllocatePoolPages().
|
|
Definition at line 547 of file allocpag.c. References ASSERT, BASE_POOL_TYPE_MASK, FALSE, MI_IS_SESSION_POOL_ADDRESS, MmSessionSpace, NonPagedPool, _MM_SESSION_SPACE::NonPagedPoolAllocations, _MM_SESSION_SPACE::NonPagedPoolBytes, _MM_SESSION_SPACE::PagedPoolAllocations, _MM_SESSION_SPACE::PagedPoolBytes, and TRUE. Referenced by ExFreePoolWithTag(), and MiFreePoolPages().
|
|
Definition at line 479 of file allocpag.c. References MmSessionSpace, and _MM_SESSION_SPACE::PagedPool. Referenced by ExpInitializePoolDescriptor().
|
|
Definition at line 3201 of file allocpag.c. References _MI_BAD_TAGS::Allocations, _MI_BAD_TAGS::AllOthers, _MI_BAD_TAGS::Dispatches, _MI_BAD_TAGS::Enabled, MiBadTags, and _MI_BAD_TAGS::TargetChar. Referenced by MiInitializeSpecialPoolCriteria().
|
|
Definition at line 209 of file allocpag.c. References FALSE, MI_IS_PHYSICAL_ADDRESS, MI_WRITE_VALID_PTE, MiGetPteAddress, TRUE, and _MMPTE::u. Referenced by MiAllocatePoolPages(), MiFindContiguousMemory(), MiFreePoolPages(), MiProtectedPoolInsertList(), MiProtectedPoolRemoveEntryList(), and MmSetKernelDumpRange().
|
|
Definition at line 3408 of file allocpag.c. References MiAllocateSpecialPool(), MiSpecialPoolPtes, and NULL. Referenced by ExAllocatePoolWithTag(), ExAllocatePoolWithTagPriority(), and MmSqueezeBadTags().
|
|
Definition at line 437 of file allocpag.c. References MI_IS_SESSION_POOL_ADDRESS, MmPagedPoolEnd, MmPagedPoolStart, NonPagedPool, PagedPool, PagedPoolSession, and TRUE. Referenced by CheckPool(), ExFreePool(), ExFreePoolSanityChecks(), ExFreePoolWithTag(), ExInitializeResource(), ExInitializeResourceLite(), and ExReinitializeResourceLite().
|
|
Referenced by ExFreePoolWithTag(). |
|
Definition at line 5146 of file allocpag.c. References MI_IS_SESSION_ADDRESS. Referenced by KeBugCheckEx().
|
|
Definition at line 5177 of file allocpag.c. References ASSERT, FALSE, MI_SPECIAL_POOL_PTE_NONPAGABLE, MI_SPECIAL_POOL_PTE_PAGABLE, MiGetPteAddress, MmSpecialPoolEnd, MmSpecialPoolStart, TRUE, and _MMPTE::u. Referenced by KeBugCheckEx().
|
|
Definition at line 5228 of file allocpag.c. References MiProtectSpecialPool(), and MiSpecialPoolPtes. Referenced by IovpProtectedIrpMakeTouchable(), and IovpProtectedIrpMakeUntouchable().
|
|
Definition at line 2927 of file allocpag.c. References ASSERT, Header, MI_SPECIAL_POOL_PAGABLE, MI_SPECIAL_POOL_VERIFIER, MmSpecialPoolEnd, MmSpecialPoolStart, PAGE_ALIGN, PAGE_SIZE, POOL_OVERHEAD, and PPOOL_HEADER. Referenced by ExQueryPoolBlockSize().
|
|
Definition at line 589 of file allocpag.c. References ASSERT, BASE_POOL_TYPE_MASK, BYTES_TO_PAGES, EX_POOL_PRIORITY, FALSE, HighPoolPriority, KeSetEvent(), LOCK_PFN2, MI_MEMORY_MAKER, MI_SESSION_POOL_SIZE, MI_UNUSED_SEGMENTS_SURPLUS, MiIssuePageExtendRequestNoWait(), MmAllocatedNonPagedPool, MmMaximumNonPagedPoolInBytes, MmPagedPoolInfo, MmSessionSpace, MmSizeOfPagedPoolInBytes, MmTotalCommitLimitMaximum, MmTotalCommittedPages, MmUnusedSegmentCleanup, MmUnusedSegmentForceFree, MmUnusedSegmentList, MUST_SUCCEED_POOL_TYPE_MASK, NonPagedPool, NormalPoolPriority, PAGE_SHIFT, PagedPool, _MM_SESSION_SPACE::PagedPoolBytes, PsGetCurrentThread, SESSION_POOL_MASK, TRUE, and UNLOCK_PFN2. Referenced by ExAllocatePoolWithTagPriority().
|
|
Referenced by KeStartAllProcessors(). |
|
Referenced by ExAllocatePoolWithTag(). |
|
Definition at line 3267 of file allocpag.c. |
|
Definition at line 3192 of file allocpag.c. Referenced by MiEnableRandomSpecialPool(), MiInitializeSpecialPoolCriteria(), MiSpecialPoolTimerDispatch(), and MmSqueezeBadTags(). |
|
Definition at line 112 of file allocpag.c. Referenced by MiFreePoolPages(), and MiInitializeNonPagedPool(). |
|
Definition at line 2918 of file allocpag.c. Referenced by MiAllocateSpecialPool(). |
|
Definition at line 2912 of file allocpag.c. Referenced by MiAllocateSpecialPool(), and MmFreeSpecialPool(). |
|
Definition at line 2920 of file allocpag.c. Referenced by MiAllocateSpecialPool(), and MiInitializeSpecialPool(). |
|
Definition at line 2916 of file allocpag.c. Referenced by MiAllocateSpecialPool(). |
|
Definition at line 2913 of file allocpag.c. Referenced by MiAllocateSpecialPool(), and MmFreeSpecialPool(). |
|
Definition at line 2917 of file allocpag.c. Referenced by MiAllocateSpecialPool(). |
|
Definition at line 2924 of file allocpag.c. Referenced by MiAllocateSpecialPool(), and MmSetSpecialPool(). |
|
Definition at line 2909 of file allocpag.c. Referenced by MiAllocateSpecialPool(), and MiInitializeSpecialPool(). |
|
Definition at line 2910 of file allocpag.c. Referenced by MiInitializeSpecialPool(), and MmFreeSpecialPool(). |
|
Definition at line 2922 of file allocpag.c. Referenced by MiEnablePagingTheExecutive(), MiInitializeSpecialPool(), MmAllocateSpecialPool(), and MmProtectSpecialPool(). |
|
Definition at line 3193 of file allocpag.c. Referenced by MiInitializeSpecialPoolCriteria(). |
|
Definition at line 3194 of file allocpag.c. Referenced by MiInitializeSpecialPoolCriteria(). |
|
Definition at line 3195 of file allocpag.c. Referenced by MiInitializeSpecialPoolCriteria(). |
|
Definition at line 111 of file allocpag.c. |
|
Definition at line 114 of file allocpag.c. Referenced by MiAllocatePoolPages(), MiFreePoolPages(), MiInitializeNonPagedPool(), MiInitMachineDependent(), and MmAccessFault(). |
|
Definition at line 116 of file allocpag.c. Referenced by MiAllocatePoolPages(), MiFindContiguousMemory(), MiFreePoolPages(), MiInitializeNonPagedPool(), and MmSetKernelDumpRange(). |
|
Definition at line 109 of file allocpag.c. |
|
Definition at line 120 of file allocpag.c. Referenced by MiBuildPagedPool(), MiInitializeSpecialPool(), and MiInitMachineDependent(). |
|
Definition at line 2914 of file allocpag.c. Referenced by MiAllocateSpecialPool(), and MmFreeSpecialPool(). |
|
Definition at line 2906 of file allocpag.c. |
|
Definition at line 2903 of file allocpag.c. |
|
Definition at line 2905 of file allocpag.c. Referenced by MiAllocateSpecialPool(). |
|
Definition at line 2902 of file allocpag.c. |
|
Definition at line 2901 of file allocpag.c. |
|
Definition at line 141 of file allocpag.c. Referenced by MiAllocatePoolPages(), MiRemoveUnusedSegments(), and MmResourcesAvailable(). |
|
Definition at line 118 of file allocpag.c. |