[NTOSKRNL] Store page file sizes in pages, not in bytes

This commit is contained in:
Pierre Schweitzer 2018-08-16 13:50:16 +02:00
parent 2fe4e71383
commit e392bdf962
No known key found for this signature in database
GPG key ID: 7545556C3D585B0B
2 changed files with 8 additions and 8 deletions

View file

@ -426,9 +426,9 @@ extern MM_MEMORY_CONSUMER MiMemoryConsumers[MC_MAXIMUM];
/* Page file information */ /* Page file information */
typedef struct _MMPAGING_FILE typedef struct _MMPAGING_FILE
{ {
LARGE_INTEGER CurrentSize; PFN_NUMBER CurrentSize;
LARGE_INTEGER MaximumSize; PFN_NUMBER MaximumSize;
LARGE_INTEGER MinimumSize; PFN_NUMBER MinimumSize;
PFN_NUMBER FreePages; PFN_NUMBER FreePages;
PFN_NUMBER UsedPages; PFN_NUMBER UsedPages;
PFILE_OBJECT FileObject; PFILE_OBJECT FileObject;

View file

@ -635,7 +635,7 @@ NtCreatePagingFile(IN PUNICODE_STRING FileName,
} }
/* Don't allow page file shrinking */ /* Don't allow page file shrinking */
if (PagingFile->MinimumSize.QuadPart > SafeMinimumSize.QuadPart) if (PagingFile->MinimumSize > (SafeMinimumSize.QuadPart >> PAGE_SHIFT))
{ {
KeReleaseGuardedMutex(&MmPageFileCreationLock); KeReleaseGuardedMutex(&MmPageFileCreationLock);
ObDereferenceObject(FileObject); ObDereferenceObject(FileObject);
@ -645,7 +645,7 @@ NtCreatePagingFile(IN PUNICODE_STRING FileName,
return STATUS_INVALID_PARAMETER_2; return STATUS_INVALID_PARAMETER_2;
} }
if (SafeMaximumSize.QuadPart < PagingFile->MaximumSize.QuadPart) if ((SafeMaximumSize.QuadPart >> PAGE_SHIFT) < PagingFile->MaximumSize)
{ {
KeReleaseGuardedMutex(&MmPageFileCreationLock); KeReleaseGuardedMutex(&MmPageFileCreationLock);
ObDereferenceObject(FileObject); ObDereferenceObject(FileObject);
@ -740,9 +740,9 @@ NtCreatePagingFile(IN PUNICODE_STRING FileName,
PagingFile->FileHandle = FileHandle; PagingFile->FileHandle = FileHandle;
PagingFile->FileObject = FileObject; PagingFile->FileObject = FileObject;
PagingFile->MaximumSize.QuadPart = SafeMaximumSize.QuadPart; PagingFile->MaximumSize = (SafeMaximumSize.QuadPart >> PAGE_SHIFT);
PagingFile->CurrentSize.QuadPart = SafeMinimumSize.QuadPart; PagingFile->CurrentSize = (SafeMinimumSize.QuadPart >> PAGE_SHIFT);
PagingFile->MinimumSize.QuadPart = SafeMinimumSize.QuadPart; PagingFile->MinimumSize = (SafeMinimumSize.QuadPart >> PAGE_SHIFT);
PagingFile->FreePages = (ULONG)(SafeMinimumSize.QuadPart / PAGE_SIZE); PagingFile->FreePages = (ULONG)(SafeMinimumSize.QuadPart / PAGE_SIZE);
PagingFile->UsedPages = 0; PagingFile->UsedPages = 0;
PagingFile->PageFileName = PageFileName; PagingFile->PageFileName = PageFileName;