#include "mi.h"
Go to the source code of this file.
Defines | |
#define | MM_MAXIMUM_QUOTA_OVERCHARGE 9 |
#define | MM_DONT_EXTEND_SIZE 512 |
#define | MM_COMMIT_POPUP_MAX ((512*1024)/PAGE_SIZE) |
#define | MM_EXTEND_COMMIT ((1024*1024)/PAGE_SIZE) |
Functions | |
LOGICAL | MiCauseOverCommitPopup (IN SIZE_T NumberOfPages, IN ULONG Extension) |
ULONG FASTCALL | MiChargePageFileQuota (IN SIZE_T QuotaCharge, IN PEPROCESS CurrentProcess) |
VOID | MiReturnPageFileQuota (IN SIZE_T QuotaCharge, IN PEPROCESS CurrentProcess) |
LOGICAL FASTCALL | MiChargeCommitment (IN SIZE_T QuotaCharge, IN PEPROCESS Process OPTIONAL) |
LOGICAL FASTCALL | MiChargeCommitmentCantExpand (IN SIZE_T QuotaCharge, IN ULONG MustSucceed) |
VOID FASTCALL | MiReturnCommitment (IN SIZE_T QuotaCharge) |
SIZE_T | MiCalculatePageCommitment (IN PVOID StartingAddress, IN PVOID EndingAddress, IN PMMVAD Vad, IN PEPROCESS Process) |
VOID | MiReturnPageTablePageCommitment (IN PVOID StartingAddress, IN PVOID EndingAddress, IN PEPROCESS CurrentProcess, IN PMMVAD PreviousVad, IN PMMVAD NextVad) |
LOGICAL | MiCauseOverCommitPopup (SIZE_T NumberOfPages, IN ULONG Extension) |
BOOLEAN | MmRaisePoolQuota (IN POOL_TYPE PoolType, IN SIZE_T OldQuotaLimit, OUT PSIZE_T NewQuotaLimit) |
VOID | MmReturnPoolQuota (IN POOL_TYPE PoolType, IN SIZE_T ReturnedQuota) |
Variables | |
SIZE_T | MmPeakCommitment |
SIZE_T | MmExtendedCommit |
SIZE_T | MmExtendedCommitLimit |
LOGICAL | MiCommitExtensionActive = FALSE |
ULONG_PTR | MmAllocatedPagedPool |
SIZE_T | MmPageFileFullExtendPages |
ULONG | MiOverCommitCallCount |
EPROCESS_QUOTA_BLOCK | PspDefaultQuotaBlock |
SIZE_T | MmTotalPagedPoolQuota |
SIZE_T | MmTotalNonPagedPoolQuota |
|
Definition at line 29 of file mmquota.c. Referenced by MiCauseOverCommitPopup(). |
|
Definition at line 27 of file mmquota.c. Referenced by MiChargeCommitmentCantExpand(). |
|
Definition at line 31 of file mmquota.c. Referenced by MiChargeCommitment(). |
|
Definition at line 25 of file mmquota.c. Referenced by MiChargeCommitment(). |
|
Definition at line 519 of file mmquota.c. References BYTES_TO_PAGES, FALSE, MiDoesPdeExistAndMakeValid(), MiDoesPpeExistAndMakeValid, MiGetPdeAddress, MiGetPpeAddress, MiGetPteAddress, MiGetVirtualAddressMappedByPte, MiIsPteDecommittedPage(), MiIsPteOnPdeBoundary, and _MMPTE::u. Referenced by NtAllocateVirtualMemory(), and NtFreeVirtualMemory().
|
|
Definition at line 1001 of file mmquota.c. References FALSE, IoRaiseInformationalHardError(), MiCommitExtensionActive, MiOverCommitCallCount, MM_COMMIT_POPUP_MAX, MmChargeCommitmentLock, MmExtendedCommit, MmExtendedCommitLimit, MmPageFileFullExtendPages, MmPeakCommitment, MmTotalCommitLimit, MmTotalCommitLimitMaximum, MmTotalCommittedPages, NULL, and TRUE.
|
|
|
|
Definition at line 191 of file mmquota.c. References _MMPAGE_FILE_EXPANSION::ActualExpansion, ASSERT, _MMPAGE_FILE_EXPANSION::Event, FALSE, KeInitializeEvent, LOCK_WS, LOCK_WS_REGARDLESS, LOCK_WS_UNSAFE, MI_EXTEND_ANY_PAGEFILE, MiCauseOverCommitPopup(), MiChargeCommitmentCantExpand(), MiIssuePageExtendRequest(), MM_EXTEND_COMMIT, MM_MAXIMUM_QUOTA_OVERCHARGE, MmChargeCommitmentLock, MmPageFileFullExtendPages, MmPeakCommitment, MmTotalCommitLimit, MmTotalCommittedPages, NULL, _MMPAGE_FILE_EXPANSION::PageFileNumber, _MMPAGE_FILE_EXPANSION::RequestedExpansionSize, _MMPAGE_FILE_EXPANSION::Segment, TRUE, and UNLOCK_WS_REGARDLESS. Referenced by MiCreateImageFileMap(), MiCreatePagingFileMap(), MiInitializeSessionPool(), MiInsertVad(), MiMapViewOfDataSection(), MiSessionCommitImagePages(), MiSessionCommitPageTables(), MiSessionCreateInternal(), MiSessionInitializeWorkingSetList(), MiSetProtectionOnSection(), MiShareSessionImage(), MmCreateKernelStack(), MmCreateProcessAddressSpace(), NtAllocateVirtualMemory(), and NtCreatePagingFile().
|
|
Definition at line 329 of file mmquota.c. References _MMPAGE_FILE_EXPANSION::DereferenceList, FALSE, _MMPAGE_FILE_EXPANSION::InProgress, KeReleaseSemaphore(), L, _MMDEREFERENCE_SEGMENT_HEADER::ListHead, _MMDEREFERENCE_SEGMENT_HEADER::Lock, MM_DONT_EXTEND_SIZE, MmAttemptForCantExtend, MmChargeCommitmentLock, MmDereferenceSegmentHeader, MmTotalCommitLimit, MmTotalCommitLimitMaximum, MmTotalCommittedPages, _MMPAGE_FILE_EXPANSION::RequestedExpansionSize, _MMDEREFERENCE_SEGMENT_HEADER::Semaphore, and TRUE. Referenced by MiAddWorkingSetPage(), MiAddWsleHash(), MiAllocatePoolPages(), MiAllocateSpecialPool(), MiChargeCommitment(), MiFillSystemPageDirectory(), MiFindContiguousMemory(), MiLoadImageSection(), MiPageFileFull(), MmAllocateIndependentPages(), MmAllocateNonCachedMemory(), MmAllocatePagesForMdl(), and MmInitSystem().
|
|
Definition at line 58 of file mmquota.c. References ExRaiseStatus(), _EPROCESS_QUOTA_BLOCK::PagefileLimit, _EPROCESS_QUOTA_BLOCK::PagefileUsage, _EPROCESS_QUOTA_BLOCK::PeakPagefileUsage, PEPROCESS_QUOTA_BLOCK, PspDefaultQuotaBlock, _EPROCESS_QUOTA_BLOCK::QuotaLock, and TRUE. Referenced by MiInsertVad(), MiSetProtectionOnSection(), and NtAllocateVirtualMemory().
|
|
Definition at line 442 of file mmquota.c. References ASSERT, FALSE, MiCommitExtensionActive, MmChargeCommitmentLock, MmExtendedCommit, MmExtendedCommitLimit, MmPageFileFullExtendPages, MmTotalCommitLimit, MmTotalCommittedPages, and TRUE. Referenced by MiCreateImageFileMap(), MiCreatePagingFileMap(), MiDereferenceSession(), MiFreeNonPagedPool(), MiFreePoolPages(), MiInitializeSessionPool(), MiLoadImageSection(), MiMapViewOfDataSection(), MiPageFileFull(), MiRemoveVad(), MiReturnPageTablePageCommitment(), MiSegmentDelete(), MiSessionCommitImagePages(), MiSessionCommitPageTables(), MiSessionCreateInternal(), MiSessionInitializeWorkingSetList(), MiSetProtectionOnSection(), MiShareSessionImage(), MmAllocateNonCachedMemory(), MmAllocatePagesForMdl(), MmCleanProcessAddressSpace(), MmCreateKernelStack(), MmCreateProcessAddressSpace(), MmDeleteKernelStack(), MmDeleteProcessAddressSpace(), MmFreeDriverInitialization(), MmFreeNonCachedMemory(), MmFreePagesFromMdl(), MmFreeSpecialPool(), MmRemovePhysicalMemory(), MmUnloadSystemImage(), NtAllocateVirtualMemory(), NtCreatePagingFile(), and NtFreeVirtualMemory().
|
|
Definition at line 133 of file mmquota.c. References ASSERT, _EPROCESS_QUOTA_BLOCK::PagefileUsage, PspDefaultQuotaBlock, and _EPROCESS_QUOTA_BLOCK::QuotaLock. Referenced by MiInsertVad(), MiRemoveVad(), MiReturnPageTablePageCommitment(), MiSetProtectionOnSection(), NtAllocateVirtualMemory(), NtFreeVirtualMemory(), and PspDereferenceQuota().
|
|
Definition at line 869 of file mmquota.c. References ASSERT, _MMWSL::CommittedPageTables, MI_CHECK_BIT, MI_CLEAR_BIT, MI_VPN_TO_VA, MiGetPpePdeOffset, MiReturnCommitment(), MiReturnPageFileQuota(), MM_DBG_COMMIT_RETURN_PAGETABLES, MM_TRACK_COMMIT, MmWorkingSetList, NULL, _MMWSL::NumberOfCommittedPageTables, PS_JOB_STATUS_REPORT_COMMIT_CHANGES, and PsChangeJobMemoryUsage(). Referenced by MmUnmapViewOfSection(), and NtFreeVirtualMemory().
|
|
Definition at line 1118 of file mmquota.c. References _MM_PAGED_POOL_INFO::AllocatedPagedPool, FALSE, MmAllocatedNonPagedPool, MmAvailablePages, MmMaximumNonPagedPoolInBytes, MMNONPAGED_QUOTA_INCREASE, MMPAGED_QUOTA_CHECK, MMPAGED_QUOTA_INCREASE, MmPagedPoolInfo, MmSizeOfPagedPoolInBytes, MmTotalNonPagedPoolQuota, MmTotalPagedPoolQuota, PAGE_SHIFT, PagedPool, and TRUE. Referenced by PsChargePoolQuota(), PsChargeSharedPoolQuota(), and PspSetQuotaLimits().
|
|
Definition at line 1212 of file mmquota.c. References MmTotalNonPagedPoolQuota, MmTotalPagedPoolQuota, and PagedPool. Referenced by PsReturnPoolQuota().
|
|
Definition at line 39 of file mmquota.c. Referenced by MiCauseOverCommitPopup(), and MiReturnCommitment(). |
|
Definition at line 45 of file mmquota.c. Referenced by MiCauseOverCommitPopup(). |
|
|
|
|
|
Definition at line 37 of file mmquota.c. Referenced by MiCauseOverCommitPopup(), and MiReturnCommitment(). |
|
Definition at line 43 of file mmquota.c. Referenced by MiCauseOverCommitPopup(), MiChargeCommitment(), MiExtendPagingFiles(), MiPageFileFull(), and MiReturnCommitment(). |
|
|
|
Definition at line 1115 of file mmquota.c. Referenced by MmRaisePoolQuota(), and MmReturnPoolQuota(). |
|
Definition at line 1114 of file mmquota.c. Referenced by MmRaisePoolQuota(), and MmReturnPoolQuota(). |
|
Definition at line 46 of file mmquota.c. Referenced by MiChargePageFileQuota(), MiReturnPageFileQuota(), ObInitSystem(), PsChargePoolQuota(), PsChargeSharedPoolQuota(), PspInheritQuota(), PspQueryQuotaLimits(), PspSetQuotaLimits(), and PsReturnPoolQuota(). |