[NTOSKRNL] Deny page file creation on floppy disk

This commit is contained in:
Pierre Schweitzer 2018-08-10 08:01:31 +02:00
parent 2969c28a27
commit 36c20dc56b
No known key found for this signature in database
GPG key ID: 7545556C3D585B0B

View file

@ -504,6 +504,7 @@ NtCreatePagingFile(IN PUNICODE_STRING FileName,
KPROCESSOR_MODE PreviousMode;
UNICODE_STRING CapturedFileName;
LARGE_INTEGER SafeInitialSize, SafeMaximumSize, AllocationSize;
FILE_FS_DEVICE_INFORMATION FsDeviceInfo;
DPRINT("NtCreatePagingFile(FileName %wZ, InitialSize %I64d)\n",
FileName, InitialSize->QuadPart);
@ -660,6 +661,16 @@ NtCreatePagingFile(IN PUNICODE_STRING FileName,
return(Status);
}
/* Deny page file creation on a floppy disk */
FsDeviceInfo.Characteristics = 0;
IoQueryVolumeInformation(FileObject, FileFsDeviceInformation, sizeof(FsDeviceInfo), &FsDeviceInfo, &Count);
if (BooleanFlagOn(FsDeviceInfo.Characteristics, FILE_FLOPPY_DISKETTE))
{
ObDereferenceObject(FileObject);
ZwClose(FileHandle);
return STATUS_FLOPPY_VOLUME;
}
CurrentRetDescList = RetDescList = MmAllocRetrievelDescriptorList(PAIRS_PER_RUN);
if (CurrentRetDescList == NULL)