From 108991a6fbae487218812350b1a984887dab084f Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Tue, 18 Sep 2018 21:42:01 +0200 Subject: [PATCH] [NTOSKRNL] Stub IoInitializeCrashDump() Also call it from NtCreatePagingFile() when we have successfully created a paging file on the system boot partition. --- ntoskrnl/include/internal/io.h | 6 ++++++ ntoskrnl/io/iomgr/iomgr.c | 8 ++++++++ ntoskrnl/mm/pagefile.c | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/ntoskrnl/include/internal/io.h b/ntoskrnl/include/internal/io.h index f47768d4a1a..83fe7ce3c7b 100644 --- a/ntoskrnl/include/internal/io.h +++ b/ntoskrnl/include/internal/io.h @@ -797,6 +797,12 @@ IopVerifyDiskSignature( OUT PULONG Signature ); +BOOLEAN +NTAPI +IoInitializeCrashDump( + IN HANDLE PageFileHandle +); + // // Device/Volume Routines // diff --git a/ntoskrnl/io/iomgr/iomgr.c b/ntoskrnl/io/iomgr/iomgr.c index 47defcab70e..292c947036d 100644 --- a/ntoskrnl/io/iomgr/iomgr.c +++ b/ntoskrnl/io/iomgr/iomgr.c @@ -651,4 +651,12 @@ IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock) return TRUE; } +BOOLEAN +NTAPI +IoInitializeCrashDump(IN HANDLE PageFileHandle) +{ + UNIMPLEMENTED; + return FALSE; +} + /* EOF */ diff --git a/ntoskrnl/mm/pagefile.c b/ntoskrnl/mm/pagefile.c index 0649f0f2c2f..d05580bfbd3 100644 --- a/ntoskrnl/mm/pagefile.c +++ b/ntoskrnl/mm/pagefile.c @@ -89,6 +89,8 @@ C_ASSERT(FILE_FROM_ENTRY(0xffffffff) < MAX_PAGING_FILES); static BOOLEAN MmSwapSpaceMessage = FALSE; +static BOOLEAN MmSystemPageFileLocated = FALSE; + /* FUNCTIONS *****************************************************************/ VOID @@ -804,6 +806,11 @@ NtCreatePagingFile(IN PUNICODE_STRING FileName, MmSwapSpaceMessage = FALSE; + if (!MmSystemPageFileLocated && BooleanFlagOn(FileObject->DeviceObject->Flags, DO_SYSTEM_BOOT_PARTITION)) + { + MmSystemPageFileLocated = IoInitializeCrashDump(FileHandle); + } + return STATUS_SUCCESS; }