#include "mi.h"
Go to the source code of this file.
Classes | |
struct | _MMWORK_CONTEXT |
struct | _MM_WRITE_CLUSTER |
Defines | |
#define | ONEMB_IN_PAGES ((1024 * 1024) / PAGE_SIZE) |
#define | MI_PAGEFILE_FULL_CHARGE 100 |
#define | MINIMUM_PAGE_FILE_SIZE ((ULONG)(256*PAGE_SIZE)) |
#define | ROUND_UP(VALUE, ROUND) |
Typedefs | |
typedef enum _MODIFIED_WRITER_OBJECT | MODIFIED_WRITER_OBJECT |
typedef _MMWORK_CONTEXT | MMWORK_CONTEXT |
typedef _MMWORK_CONTEXT * | PMMWORK_CONTEXT |
typedef _MM_WRITE_CLUSTER | MM_WRITE_CLUSTER |
typedef _MM_WRITE_CLUSTER * | PMM_WRITE_CLUSTER |
Enumerations | |
enum | _MODIFIED_WRITER_OBJECT { NormalCase, MappedPagesNeedWriting, ModifiedWriterMaximumObject } |
Functions | |
NTSTATUS | MiCheckForCrashDump (PFILE_OBJECT File, IN ULONG FileNumber) |
VOID | MiCrashDumpWorker (IN PVOID Context) |
VOID | MiClusterWritePages (IN PMMPFN Pfn1, IN PFN_NUMBER PageFrameIndex, IN PMM_WRITE_CLUSTER WriteCluster, IN ULONG Size) |
VOID | MiExtendPagingFileMaximum (IN ULONG PageFileNumber, IN PRTL_BITMAP NewBitmap) |
NTSTATUS | MiCheckPageFileMapping (IN PFILE_OBJECT File) |
VOID | MiInsertPageFileInList (VOID) |
VOID | MiGatherMappedPages (IN PMMPFN Pfn1, IN PFN_NUMBER PageFrameIndex) |
VOID | MiGatherPagefilePages (IN PMMPFN Pfn1, IN PFN_NUMBER PageFrameIndex) |
VOID | MiPageFileFull (VOID) |
LOGICAL | MiCauseOverCommitPopup (IN SIZE_T NumberOfPages, IN ULONG Extension) |
VOID | MiModifiedPageWriterWorker (VOID) |
SIZE_T | MiAttemptPageFileExtension (IN ULONG PageFileNumber, IN SIZE_T ExtendSize, IN SIZE_T Maximum) |
NTSTATUS | MiCheckPageFilePath (PFILE_OBJECT FileObject) |
VOID | MiReleaseModifiedWriter (VOID) |
NTSTATUS | NtCreatePagingFile (IN PUNICODE_STRING PageFileName, IN PLARGE_INTEGER MinimumSize, IN PLARGE_INTEGER MaximumSize, IN ULONG Priority OPTIONAL) |
NTSTATUS | MmGetCrashDumpInformation (IN PSYSTEM_CRASH_DUMP_INFORMATION CrashInfo) |
NTSTATUS | MmGetCrashDumpStateInformation (IN PSYSTEM_CRASH_STATE_INFORMATION CrashInfo) |
SIZE_T | MiExtendPagingFiles (IN PMMPAGE_FILE_EXPANSION PageExpand) |
VOID | MiContractPagingFiles (VOID) |
VOID | MiAttemptPageFileReduction (VOID) |
VOID | MiWriteComplete (IN PVOID Context, IN PIO_STATUS_BLOCK IoStatus, IN ULONG Reserved) |
LOGICAL | MiCancelWriteOfMappedPfn (IN PFN_NUMBER PageToStop) |
VOID | MiModifiedPageWriter (IN PVOID StartContext) |
VOID | MiModifiedPageWriterTimerDispatch (IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2) |
VOID | MiMappedPageWriter (IN PVOID StartContext) |
BOOLEAN | MmDisableModifiedWriteOfSection (IN PSECTION_OBJECT_POINTERS SectionObjectPointer) |
NTSTATUS | MmGetPageFileInformation (OUT PVOID SystemInformation, IN ULONG SystemInformationLength, OUT PULONG Length) |
VOID | MiPageFileFull () |
VOID | MiFlushAllPages (VOID) |
LOGICAL | MiIssuePageExtendRequest (IN PMMPAGE_FILE_EXPANSION PageExtend) |
VOID | MiIssuePageExtendRequestNoWait (IN PFN_NUMBER SizeInPages) |
Variables | |
ULONG | MmWriteAllModifiedPages |
LOGICAL | MiFirstPageFileCreatedAndReady = FALSE |
PSECTION | MmCrashDumpSection |
POBJECT_TYPE | IoFileObjectType |
HANDLE | PspInitialSystemProcessHandle |
LIST_ENTRY | MmMappedPageWriterList |
KEVENT | MmMappedPageWriterEvent |
KEVENT | MmMappedFileIoComplete |
ULONG | MmSystemShutdown |
SIZE_T | MmOverCommit2 |
SIZE_T | MmPageFileFullExtendPages |
ULONG | MmPageFileFullExtendCount |
SIZE_T | MiPageFileFullCharge |
LOGICAL | MmPageFileFullPopupShown = FALSE |
ULONG | MmModNoWriteInsert |
BOOLEAN | MmSystemPageFileLocated |
PFN_NUMBER | MmMoreThanEnoughFreePages |
|
Definition at line 102 of file modwrite.c. Referenced by MiPageFileFull(). |
|
Definition at line 151 of file modwrite.c. Referenced by NtCreatePagingFile(). |
|
Definition at line 45 of file modwrite.c. Referenced by MiIssuePageExtendRequestNoWait(). |
|
Value: Definition at line 4463 of file modwrite.c. |
|
|
|
|
|
|
|
|
|
Referenced by MiCrashDumpWorker(). |
|
Definition at line 24 of file modwrite.c.
|
|
Definition at line 1485 of file modwrite.c. References ASSERT, DISPATCH_LEVEL, FALSE, File, _MMPAGING_FILE::FreeSpace, IoQueryVolumeInformation(), IoSetInformation(), LOCK_PFN, _MMPAGING_FILE::MaximumSize, MiUpdateModifiedWriterMdls(), MmMinimumFreeDiskSpace, MmPageFileExtension, MmPagingFile, NT_SUCCESS, NTSTATUS(), PAGE_SHIFT, PAGE_SIZE, RtlClearBits(), RtlExtendedIntegerMultiply(), Size, _MMPAGING_FILE::Size, and UNLOCK_PFN. Referenced by MiExtendPagingFiles().
|
|
Definition at line 1940 of file modwrite.c. References ASSERT, DbgPrint, DISPATCH_LEVEL, _MMPAGING_FILE::Entry, FALSE, File, _MMPAGING_FILE::FreeSpace, IoSetInformation(), _MMMOD_WRITER_MDL_ENTRY::LastPageToWrite, LOCK_PFN, _MMPAGING_FILE::MinimumSize, MmChargeCommitmentLock, MmMinimumPageFileReduction, MmNumberOfPagingFiles, MmPagingFile, MmTotalCommitLimit, MmTotalCommittedPages, NTSTATUS(), PAGE_SHIFT, PAGE_SIZE, RtlAreBitsClear(), RtlClearBits(), RtlSetBits(), Size, _MMPAGING_FILE::Size, TRUE, and UNLOCK_PFN. Referenced by MiDereferenceSegmentThread().
|
|
Definition at line 2579 of file modwrite.c. References APC_LEVEL, _MDL::ByteCount, FALSE, LOCK_PFN, _MMMOD_WRITER_MDL_ENTRY::Mdl, MiWriteComplete(), MmMappedPageWriterList, PAGE_SHIFT, TRUE, _MMMOD_WRITER_MDL_ENTRY::u, and UNLOCK_PFN. Referenced by MmPurgeSection().
|
|
Referenced by MiChargeCommitment(), and MiPageFileFull(). |
|
Definition at line 1095 of file modwrite.c. References ASSERT, _MMPAGING_FILE::CurrentUsage, DelayedWorkQueue, _KPROCESS::DirectoryTableBase, _MMWORK_CONTEXT::Event, ExInitializeWorkItem, ExQueueWorkItem(), FALSE, File, _MMPAGING_FILE::FreeSpace, HighPagePriority, IoPageRead(), IoSynchronousPageWrite(), KeClearEvent, KeInitializeEvent, KernelMode, KeWaitForSingleObject(), _MDL::MappedSystemVa, MDL_PAGES_LOCKED, _MDL::MdlFlags, MI_PFN_ELEMENT, MI_SET_PAGING_FILE_INFO, MI_WRITE_INVALID_PTE, MiCrashDumpWorker(), MiGetPageForHeader(), MiRemoveImageHeaderPage(), MiUpdateImageHeaderPage(), MmCrashDumpSection, MmCreateMdl(), MmDynamicMemoryMutex, MmGetSystemAddressForMdlSafe, MmPagingFile, MmPagingFileDebug, MmPfnDatabase, MmPhysicalMemoryBlock, MmUnmapLockedPages(), NT_SUCCESS, NTSTATUS(), NULL, _PHYSICAL_MEMORY_DESCRIPTOR::NumberOfRuns, Offset, PAGE_SHIFT, PAGE_SIZE, _EPROCESS::Pcb, PsActiveProcessHead, PsInitialSystemProcess, PsLoadedModuleList, RtlSetBits(), _MMWORK_CONTEXT::Size, _MMPAGING_FILE::Size, Status, _MMPFN::u3, WrPageIn, and WrVirtualMemory. Referenced by NtCreatePagingFile().
|
|
Definition at line 4563 of file modwrite.c. References File, LOCK_PFN, NULL, and UNLOCK_PFN. Referenced by NtCreatePagingFile().
|
|
Definition at line 166 of file modwrite.c. References ASSERT, _IRP::AssociatedIrp, DeviceUsageTypePaging, Executive, FALSE, _IO_STACK_LOCATION::FileObject, _IRP::Flags, IoAllocateIrp(), IoCallDriver, IoGetNextIrpStackLocation, IoGetRelatedDeviceObject(), IoQueueThreadIrp(), _IRP::IoStatus, IRP_MJ_PNP, IRP_MN_DEVICE_USAGE_NOTIFICATION, IRP_SYNCHRONOUS_API, KeInitializeEvent, KernelMode, KeWaitForSingleObject(), _IO_STACK_LOCATION::MajorFunction, _IO_STACK_LOCATION::MinorFunction, NTSTATUS(), NULL, ObReferenceObject, _IRP::Overlay, PAGED_CODE, _IO_STACK_LOCATION::Parameters, PsGetCurrentThread, _IRP::RequestorMode, _DEVICE_OBJECT::StackSize, _IRP::Tail, TRUE, _IRP::UserEvent, _IRP::UserIosb, and VOID(). Referenced by MiLoadSystemImage(), and NtCreatePagingFile().
|
|
Referenced by MiGatherPagefilePages(). |
|
Definition at line 1864 of file modwrite.c. References _MMPAGE_FILE_EXPANSION::DereferenceList, ExAllocatePoolWithTag, FALSE, _MMPAGING_FILE::FreeSpace, KeReleaseSemaphore(), L, _MMDEREFERENCE_SEGMENT_HEADER::ListHead, _MMDEREFERENCE_SEGMENT_HEADER::Lock, _MMPAGING_FILE::MinimumSize, MmChargeCommitmentLock, MmDereferenceSegmentHeader, MmMinimumPageFileReduction, MmNumberOfPagingFiles, MmPagingFile, MmTotalCommitLimit, MmTotalCommittedPages, NonPagedPool, NULL, _MMPAGE_FILE_EXPANSION::RequestedExpansionSize, _MMPAGE_FILE_EXPANSION::Segment, _MMDEREFERENCE_SEGMENT_HEADER::Semaphore, _MMPAGING_FILE::Size, and TRUE. Referenced by MmDeleteProcessAddressSpace().
|
|
Definition at line 1338 of file modwrite.c. References _MMWORK_CONTEXT::Event, FALSE, KeSetEvent(), MmCrashDumpSection, MmCreateSection(), NULL, ObjectAttributes, PAGED_CODE, PMMWORK_CONTEXT, _MMWORK_CONTEXT::Size, and _MMWORK_CONTEXT::Status. Referenced by MiCheckForCrashDump().
|
|
Definition at line 1031 of file modwrite.c. References _MMPAGING_FILE::Bitmap, LOCK_PFN, _MMPAGING_FILE::MaximumSize, MiUpdateModifiedWriterMdls(), MmFreePagingSpaceLow, MmPagingFile, MmTotalCommitLimitMaximum, RtlSetAllBits(), and UNLOCK_PFN. Referenced by NtCreatePagingFile().
|
|
Definition at line 1681 of file modwrite.c. References ASSERT, FALSE, _MMPAGING_FILE::MaximumSize, MI_EXTEND_ANY_PAGEFILE, MiAttemptPageFileExtension(), MmChargeCommitmentLock, MmNumberOfPagingFiles, MmPageFileFullExtendPages, MmPagingFile, MmTotalCommitLimit, MmTotalCommittedPages, _MMPAGING_FILE::Size, and TRUE. Referenced by MiDereferenceSegmentThread().
|
|
Definition at line 4870 of file modwrite.c. References FALSE, KeDelayExecutionThread(), KernelMode, KeSetEvent(), Mm30Milliseconds, MmModifiedPageListHead, MmModifiedPageWriterEvent, MmWriteAllModifiedPages, _MMPFNLIST::Total, and TRUE. Referenced by MiAllocateContiguousMemory(), MmGatherMemoryForHibernate(), and MmRemovePhysicalMemory().
|
|
Definition at line 3198 of file modwrite.c. References APC_LEVEL, ASSERT, BYTE_OFFSET, _MDL::ByteCount, BYTES_TO_PAGES, _MMMOD_WRITER_MDL_ENTRY::ControlArea, _SUBSECTION::ControlArea, DbgPrint, FALSE, _MMMOD_WRITER_MDL_ENTRY::File, _CONTROL_AREA::FilePointer, _MMMOD_WRITER_MDL_ENTRY::FileResource, FsRtlAcquireFileForModWrite(), IoAsynchronousPageWrite(), _MMMOD_WRITER_MDL_ENTRY::IoStatus, KeLowerIrql(), KeRaiseIrql(), KeSetEvent(), _MMMOD_WRITER_MDL_ENTRY::Links, _MMMOD_WRITER_LISTHEAD::ListHead, LOCK_PFN, _MMINFO_COUNTERS::MappedPagesWriteCount, _MMINFO_COUNTERS::MappedWriteIoCount, _MMMOD_WRITER_MDL_ENTRY::Mdl, MDL_PAGES_LOCKED, _MDL::MdlFlags, MI_ADD_LOCKED_PAGE_CHARGE_FOR_MODIFIED_PAGE, MI_GET_PAGE_FRAME_FROM_TRANSITION_PTE, MI_PFN_ELEMENT, MiGetSubsectionAddress, MiInsertFrontModifiedNoWrite(), MiInsertPageInList(), MiMapPageInHyperSpace(), MiStartingOffset(), MiUnlinkPageFromList(), MiUnmapPageInHyperSpace, MiWriteComplete(), MmAvailablePages, MmEnoughMemoryForWrite, MmFreeGoal, MmInfoCounters, MmInitializeMdl, MmIsAddressValid(), MmMappedFileHeader, MmMappedPageWriterEvent, MmMappedPageWriterList, MmModifiedWriteClusterSize, MmModNoWriteInsert, MmPageLocationList, ModifiedNoWritePageList, ModifiedPageList, _CONTROL_AREA::ModifiedWriteCount, NT_ERROR, NULL, _CONTROL_AREA::NumberOfMappedViews, _CONTROL_AREA::NumberOfPfnReferences, _CONTROL_AREA::NumberOfSectionReferences, _MMMOD_WRITER_MDL_ENTRY::Page, PAGE_ALIGN, PAGE_SHIFT, PAGE_SIZE, _MMPFN::PteAddress, _SUBSECTION::PtesInSubsection, _MDL::Size, Status, _SUBSECTION::SubsectionBase, TRUE, _MMMOD_WRITER_MDL_ENTRY::u, _MMPTE::u, _CONTROL_AREA::u, _MMPFN::u3, UNLOCK_PFN, and _MMMOD_WRITER_MDL_ENTRY::WriteOffset. Referenced by MiModifiedPageWriterWorker().
|
|
Definition at line 3701 of file modwrite.c. References APC_LEVEL, ASSERT, _MMPAGING_FILE::Bitmap, _MDL::ByteCount, _MMMOD_WRITER_MDL_ENTRY::CurrentList, _MMPAGING_FILE::CurrentUsage, DbgPrint, _MMINFO_COUNTERS::DirtyPagesWriteCount, _MMINFO_COUNTERS::DirtyWriteIoCount, _MMMOD_WRITER_LISTHEAD::Event, FALSE, _MMPAGING_FILE::File, File, _MMPAGING_FILE::FreeSpace, _MMPAGING_FILE::Hint, _MMPAGING_FILE::HintSetToZero, IoAsynchronousPageWrite(), KeClearEvent, KeLowerIrql(), KeRaiseIrql(), KernelMode, KeSetEvent(), KeWaitForSingleObject(), _MMMOD_WRITER_MDL_ENTRY::LastPageToWrite, _MMMOD_WRITER_MDL_ENTRY::Links, _MMMOD_WRITER_LISTHEAD::ListHead, LOCK_PFN, _MMMOD_WRITER_MDL_ENTRY::Mdl, MDL_PAGES_LOCKED, _MDL::MdlFlags, MI_ADD_LOCKED_PAGE_CHARGE_FOR_MODIFIED_PAGE, MI_GET_MODIFIED_PAGE_BY_COLOR, MI_GET_NEXT_COLOR, MI_PFN_ELEMENT, MI_SET_PAGING_FILE_INFO, MiClusterWritePages(), _MMPAGING_FILE::MinimumSize, MiPageFileFull(), MiUnlinkPageFromList(), MiWriteComplete(), Mm30Milliseconds, MM_DBG_MOD_WRITE, MM_EMPTY_LIST, MM_IO_IN_PROGRESS, MmFreePagingSpaceLow, MmInfoCounters, MmInitializeMdl, MmModifiedWriteClusterSize, MmNumberOfActiveMdlEntries, MmPagingFileDebug, MmPagingFileHeader, NT_ERROR, NTSTATUS(), _MMMOD_WRITER_MDL_ENTRY::Page, PAGE_SHIFT, PAGE_SIZE, _MMPAGING_FILE::PageFileNumber, _MMMOD_WRITER_MDL_ENTRY::PagingFile, _MMMOD_WRITER_MDL_ENTRY::PagingListHead, _MMPAGING_FILE::PeakUsage, RtlClearBits(), RtlFindClearBitsAndSet(), _MDL::Size, Status, TRUE, _MMMOD_WRITER_MDL_ENTRY::u, UNLOCK_PFN, and WrPageOut. Referenced by MiModifiedPageWriterWorker().
|
|
Definition at line 4607 of file modwrite.c. References Count, _MMMOD_WRITER_MDL_ENTRY::CurrentList, _MMPAGING_FILE::Entry, _MMMOD_WRITER_LISTHEAD::Event, FALSE, _MMPAGING_FILE::FreeSpace, KeSetEvent(), _MMMOD_WRITER_LISTHEAD::ListHead, LOCK_PFN, _MMPAGING_FILE::MaximumSize, MmChargeCommitmentLock, MmNumberOfActiveMdlEntries, MmNumberOfPagingFiles, MmOverCommit, MmOverCommit2, MmPagingFile, MmPagingFileHeader, MmTotalCommitLimit, MmTotalCommitLimitMaximum, and UNLOCK_PFN. Referenced by NtCreatePagingFile().
|
|
Definition at line 4911 of file modwrite.c. References Executive, FALSE, KeReleaseSemaphore(), KernelMode, KeWaitForSingleObject(), L, _MMDEREFERENCE_SEGMENT_HEADER::ListHead, _MMDEREFERENCE_SEGMENT_HEADER::Lock, MmDereferenceSegmentHeader, MmOneSecond, MmTwentySeconds, NTSTATUS(), NULL, _MMDEREFERENCE_SEGMENT_HEADER::Semaphore, and TRUE. Referenced by MiChargeCommitment(), and NtCreatePagingFile().
|
|
Definition at line 5023 of file modwrite.c. References ASSERT, _MMPAGE_FILE_EXPANSION::DereferenceList, DISPATCH_LEVEL, FALSE, _MMPAGE_FILE_EXPANSION::InProgress, KeReleaseSemaphore(), L, _MMDEREFERENCE_SEGMENT_HEADER::ListHead, _MMDEREFERENCE_SEGMENT_HEADER::Lock, MmAttemptForCantExtend, MmChargeCommitmentLock, MmDereferenceSegmentHeader, NTSTATUS(), ONEMB_IN_PAGES, _MMPAGE_FILE_EXPANSION::RequestedExpansionSize, _MMDEREFERENCE_SEGMENT_HEADER::Semaphore, and TRUE. Referenced by MiAllocatePoolPages(), and MmResourcesAvailable().
|
|
Definition at line 4239 of file modwrite.c. References APC_LEVEL, _MMMOD_WRITER_MDL_ENTRY::ControlArea, FALSE, _MMMOD_WRITER_MDL_ENTRY::File, _MMMOD_WRITER_MDL_ENTRY::FileResource, FsRtlAcquireFileForModWrite(), FsRtlSetTopLevelIrpForModWriter, IoAsynchronousPageWrite(), _MMMOD_WRITER_MDL_ENTRY::IoStatus, IoSynchronousPageWrite(), KeClearEvent, KeInitializeEvent, KeLowerIrql(), KeRaiseIrql(), KernelMode, KeSetPriorityThread(), KeWaitForSingleObject(), LOCK_PFN, _MMMOD_WRITER_MDL_ENTRY::Mdl, MiWriteComplete(), MmMappedPageWriterEvent, MmMappedPageWriterList, NT_ERROR, NTSTATUS(), NULL, PsGetCurrentThread, Status, TRUE, _MMMOD_WRITER_MDL_ENTRY::u, _CONTROL_AREA::u, UNLOCK_PFN, VOID(), _MMMOD_WRITER_MDL_ENTRY::WriteOffset, and WrVirtualMemory. Referenced by MiModifiedPageWriter().
|
|
Definition at line 2669 of file modwrite.c. References _MMMOD_WRITER_LISTHEAD::Event, ExAllocatePoolWithTag, FALSE, KeDelayExecutionThread(), KeInitializeEvent, KernelMode, KeSetPriorityThread(), L, _MMMOD_WRITER_MDL_ENTRY::Links, _MMMOD_WRITER_LISTHEAD::ListHead, MiMappedPageWriter(), MiModifiedPageWriterWorker(), MM_MAPPED_FILE_MDLS, MmFreePagingSpaceLow, MmMappedFileHeader, MmMappedFileMdl, MmMappedPageWriterEvent, MmMappedPageWriterList, MmModifiedWriteClusterSize, MmPagingFileHeader, MmSystemShutdown, NonPagedPoolMustSucceed, NULL, ObjectAttributes, PAGED_CODE, _MMMOD_WRITER_MDL_ENTRY::PagingFile, _MMMOD_WRITER_MDL_ENTRY::PagingListHead, PsCreateSystemThread(), PsGetCurrentThread, ThreadHandle, and VOID(). Referenced by MmInitSystem().
|
|
Definition at line 2782 of file modwrite.c. References FALSE, KeSetEvent(), LOCK_PFN2, MiMappedPagesTooOldEvent, MiTimerPending, TRUE, and UNLOCK_PFN2. Referenced by MmInitSystem().
|
|
Definition at line 2831 of file modwrite.c. References ASSERT, _SUBSECTION::ControlArea, _MMMOD_WRITER_LISTHEAD::Event, FALSE, _MMPFNLIST::Flink, _MMPAGING_FILE::HintSetToZero, KeClearEvent, KeDelayExecutionThread(), KernelMode, KeSetTimerEx(), KeWaitForMultipleObjects(), KeWaitForSingleObject(), _MMMOD_WRITER_LISTHEAD::ListHead, LOCK_PFN, MappedPagesNeedWriting, MI_GET_MODIFIED_PAGE_ANY_COLOR, MI_PFN_ELEMENT, MiFirstPageFileCreatedAndReady, MiGatherMappedPages(), MiGatherPagefilePages(), MiGetSubsectionAddress, MiInsertPageInList(), MiMappedPagesTooOldEvent, MiModifiedPageLife, MiModifiedPageWriterTimer, MiModifiedPageWriterTimerDpc, MiTimerPending, MiUnlinkPageFromList(), Mm30Milliseconds, MM_EMPTY_LIST, MmAvailablePages, MmFreeGoal, MmMappedFileHeader, MmModifiedNoWritePageListHead, MmModifiedPageListHead, MmModifiedPageWriterEvent, MmModNoWriteInsert, MmMoreThanEnoughFreePages, MmNumberOfPagingFiles, MmPagingFile, MmPagingFileHeader, MmShortTime, MmSystemShutdown, MmTotalPagesForPagingFile, MmWriteAllModifiedPages, ModifiedWriterMaximumObject, NormalCase, NTSTATUS(), NULL, _MMPFN::OriginalPte, _MMPFNLIST::Total, TRUE, _MMPTE::u, _CONTROL_AREA::u, UNLOCK_PFN, VOID(), WrFreePage, and WrPageOut. Referenced by MiModifiedPageWriter().
|
|
Definition at line 4709 of file modwrite.c. References ASSERT, FALSE, _MMPAGING_FILE::FreeSpace, LOCK_PFN, _MMPAGING_FILE::MaximumSize, MI_PAGEFILE_FULL_CHARGE, MiCauseOverCommitPopup(), MiChargeCommitmentCantExpand(), MiPageFileFullCharge, MiReturnCommitment(), MM_DBG_COMMIT_PAGEFILE_FULL, MM_PFN_LOCK_ASSERT, MM_TRACK_COMMIT, MmChargeCommitmentLock, MmNumberOfPagingFiles, MmPageFileFullExtendCount, MmPageFileFullExtendPages, MmPageFileFullPopupShown, MmPagingFile, MmTotalCommitLimit, MmTotalCommittedPages, _MMPAGING_FILE::Size, TRUE, and UNLOCK_PFN. Referenced by MiGatherPagefilePages().
|
|
|
|
Definition at line 275 of file modwrite.c. References LOCK_PFN, MiFirstPageFileCreatedAndReady, TRUE, and UNLOCK_PFN. Referenced by NtCreatePagingFile().
|
|
Definition at line 2234 of file modwrite.c. References ASSERT, _MDL::ByteCount, _MMMOD_WRITER_MDL_ENTRY::ControlArea, _MMMOD_WRITER_MDL_ENTRY::CurrentList, DbgPrint, _MMMOD_WRITER_LISTHEAD::Event, FALSE, _MMMOD_WRITER_MDL_ENTRY::File, _FILE_OBJECT::FileName, _CONTROL_AREA::FilePointer, _MMMOD_WRITER_MDL_ENTRY::FileResource, _MMPAGING_FILE::FreeSpace, FsRtlReleaseFileForModWrite(), GET_PAGING_FILE_NUMBER, GET_PAGING_FILE_OFFSET, IoRaiseInformationalHardError(), KeDelayExecutionThread(), KePulseEvent(), KernelMode, KeSetEvent(), _MMMOD_WRITER_MDL_ENTRY::LastPageToWrite, _MMMOD_WRITER_MDL_ENTRY::Links, _MMMOD_WRITER_LISTHEAD::ListHead, LOCK_PFN, _MDL::MappedSystemVa, _MMMOD_WRITER_MDL_ENTRY::Mdl, MDL_MAPPED_TO_SYSTEM_VA, _MDL::MdlFlags, MI_IS_PFN_DELETED, MI_PFN_ELEMENT, MI_REMOVE_LOCKED_PAGE_CHARGE, MiCheckControlArea(), MiDecrementReferenceCount(), MiGetPteAddress, MiReleasePageFileSpace(), Mm30Milliseconds, MM_COPY_ON_WRITE_MASK, MM_DBG_MOD_WRITE, MM_DBG_PRINTS_MODWRITES, MM_PROTECTION_WRITE_MASK, MM_USABLE_PAGES_FREE, MmFreePagingSpaceLow, MmMappedFileIoComplete, MmNumberOfActiveMdlEntries, MmPagingFileDebug, MmPagingFileHeader, MmUnmapLockedPages(), _CONTROL_AREA::ModifiedWriteCount, NT_ERROR, NTSTATUS(), NULL, _CONTROL_AREA::NumberOfPfnReferences, Offset, _MMPFN::OriginalPte, _MMMOD_WRITER_MDL_ENTRY::Page, PAGE_SIZE, _MMMOD_WRITER_MDL_ENTRY::PagingFile, _MMMOD_WRITER_MDL_ENTRY::PagingListHead, PDE_TOP, _MMPFN::PteAddress, SHORT, TRUE, _CONTROL_AREA::u, _MMPTE::u, _MMPFN::u3, and UNLOCK_PFN. Referenced by MiCancelWriteOfMappedPfn(), MiGatherMappedPages(), MiGatherPagefilePages(), and MiMappedPageWriter().
|
|
Definition at line 4397 of file modwrite.c. References LOCK_PFN, NULL, _CONTROL_AREA::NumberOfMappedViews, _CONTROL_AREA::u, and UNLOCK_PFN. Referenced by CcInitializeCacheMap().
|
|
Definition at line 1392 of file modwrite.c. References Handle, MmCrashDumpSection, NT_SUCCESS, NTSTATUS(), NULL, ObInsertObject(), PAGED_CODE, and Status. Referenced by NtQuerySystemInformation().
|
|
Definition at line 1452 of file modwrite.c. References MmCrashDumpSection, NULL, and PAGED_CODE. Referenced by NtQuerySystemInformation().
|
|
Definition at line 4466 of file modwrite.c. References _MMPAGING_FILE::CurrentUsage, MmNumberOfPagingFiles, MmPagingFile, PAGED_CODE, _MMPAGING_FILE::PageFileName, _MMPAGING_FILE::PeakUsage, ROUND_UP, and _MMPAGING_FILE::Size. Referenced by NtQuerySystemInformation().
|
|
Definition at line 297 of file modwrite.c. References ASSERT, _MMPAGING_FILE::Bitmap, CreateFileTypeNone, DbgPrint, _DEVICE_OBJECT::DeviceType, _MMPAGING_FILE::Entry, _MMPAGE_FILE_EXPANSION::Event, ExAllocatePoolWithTag, ExFreePool(), ExSystemExceptionFilter(), FALSE, _MMPAGING_FILE::File, File, _MMPAGING_FILE::FreeSpace, IO_NO_PARAMETER_CHECKING, IO_OPEN_PAGING_FILE, IoCreateFile(), IoFileObjectType, IoGetRelatedDeviceObject(), IoPageFileCreated(), IoQueryVolumeInformation(), KeInitializeEvent, KernelMode, KPROCESSOR_MODE, L, MAX_PAGE_FILES, _MMPAGING_FILE::MaximumSize, MiChargeCommitment(), MiCheckForCrashDump(), MiCheckPageFileMapping(), MiCheckPageFilePath(), MiCreateBitMap, MiExtendPagingFileMaximum(), MiInsertPageFileInList(), MiIssuePageExtendRequest(), MINIMUM_PAGE_FILE_SIZE, _MMPAGING_FILE::MinimumSize, MiReleaseModifiedWriter(), MiRemoveBitMap, MiReturnCommitment(), MMMOD_WRITER_MDL_ENTRY, MmModifiedWriteClusterSize, MmNumberOfPagingFiles, MmPageFileCreationLock, MMPAGING_FILE, MmPagingFile, MmPagingFileHeader, MmSystemPageFileLocated, MmTotalCommitLimit, MmTotalCommitLimitMaximum, MmTotalCommittedPages, NonPagedPool, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObOpenObjectByPointer(), ObReferenceObjectByHandle(), PAGE_SHIFT, PAGED_CODE, PagedPool, _MMPAGING_FILE::PageFileName, _MMPAGING_FILE::PageFileNumber, _MMPAGE_FILE_EXPANSION::PageFileNumber, _MMMOD_WRITER_MDL_ENTRY::PagingFile, _MMMOD_WRITER_MDL_ENTRY::PagingListHead, ProbeForRead, PsInitialSystemProcess, PsProcessType, _MMPAGE_FILE_EXPANSION::RequestedExpansionSize, ROUND_TO_PAGES, RtlClearBits(), RtlSetAllBits(), SeCreatePagefilePrivilege, _FILE_OBJECT::SectionObjectPointer, _MMPAGE_FILE_EXPANSION::Segment, SeSinglePrivilegeCheck(), Size, _MMPAGING_FILE::Size, Status, TRUE, and ZwSetInformationFile().
|
|
Definition at line 85 of file modwrite.c. |
|
Definition at line 43 of file modwrite.c. Referenced by MiModifiedPageWriterWorker(), and MiReleaseModifiedWriter(). |
|
Definition at line 104 of file modwrite.c. Referenced by MiPageFileFull(). |
|
Definition at line 83 of file modwrite.c. Referenced by MiCheckForCrashDump(), MiCrashDumpWorker(), MmGetCrashDumpInformation(), and MmGetCrashDumpStateInformation(). |
|
Definition at line 92 of file modwrite.c. Referenced by MiCleanSection(), MiWriteComplete(), MmInitSystem(), and MmPurgeSection(). |
|
Definition at line 90 of file modwrite.c. Referenced by MiGatherMappedPages(), MiMappedPageWriter(), and MiModifiedPageWriter(). |
|
Definition at line 88 of file modwrite.c. Referenced by MiCancelWriteOfMappedPfn(), MiGatherMappedPages(), MiMappedPageWriter(), and MiModifiedPageWriter(). |
|
Definition at line 108 of file modwrite.c. Referenced by MiGatherMappedPages(), MiModifiedPageWriterWorker(), and MiObtainFreePages(). |
|
Definition at line 149 of file modwrite.c. |
|
Definition at line 96 of file modwrite.c. Referenced by MiInsertPageFileInList(). |
|
Definition at line 100 of file modwrite.c. Referenced by MiPageFileFull(). |
|
Definition at line 98 of file modwrite.c. Referenced by MiCauseOverCommitPopup(), MiChargeCommitment(), MiExtendPagingFiles(), MiPageFileFull(), and MiReturnCommitment(). |
|
Definition at line 106 of file modwrite.c. Referenced by MiPageFileFull(). |
|
Definition at line 110 of file modwrite.c. Referenced by NtCreatePagingFile(). |
|
Definition at line 94 of file modwrite.c. Referenced by MiModifiedPageWriter(), MiModifiedPageWriterWorker(), and MmShutdownSystem(). |
|
Definition at line 42 of file modwrite.c. Referenced by MiFlushAllPages(), and MiModifiedPageWriterWorker(). |
|
Definition at line 86 of file modwrite.c. Referenced by PsCreateSystemProcess(), PspCreateProcess(), and PspInitPhase0(). |