[NTOSKRNL] Misc fixes:

- Rename page file struct to MMPAGING_FILE
- Increment page files count after current page file was put in the list
This commit is contained in:
Pierre Schweitzer 2018-08-11 23:34:08 +02:00
parent f106c297de
commit 02b0ca08e4
No known key found for this signature in database
GPG key ID: 7545556C3D585B0B

View file

@ -21,6 +21,7 @@
* FILE: ntoskrnl/mm/pagefile.c * FILE: ntoskrnl/mm/pagefile.c
* PURPOSE: Paging file functions * PURPOSE: Paging file functions
* PROGRAMMER: David Welch (welch@mcmail.com) * PROGRAMMER: David Welch (welch@mcmail.com)
* Pierre Schweitzer
* UPDATE HISTORY: * UPDATE HISTORY:
* Created 22/05/98 * Created 22/05/98
*/ */
@ -38,7 +39,7 @@
/* TYPES *********************************************************************/ /* TYPES *********************************************************************/
typedef struct _PAGINGFILE typedef struct _MMPAGING_FILE
{ {
PFILE_OBJECT FileObject; PFILE_OBJECT FileObject;
HANDLE FileHandle; HANDLE FileHandle;
@ -49,7 +50,7 @@ typedef struct _PAGINGFILE
PRTL_BITMAP AllocMap; PRTL_BITMAP AllocMap;
KSPIN_LOCK AllocMapLock; KSPIN_LOCK AllocMapLock;
} }
PAGINGFILE, *PPAGINGFILE; MMPAGING_FILE, *PMMPAGING_FILE;
/* GLOBALS *******************************************************************/ /* GLOBALS *******************************************************************/
@ -58,7 +59,7 @@ PAGINGFILE, *PPAGINGFILE;
#define MAX_PAGING_FILES (16) #define MAX_PAGING_FILES (16)
/* List of paging files, both used and free */ /* List of paging files, both used and free */
static PPAGINGFILE MmPagingFile[MAX_PAGING_FILES]; static PMMPAGING_FILE MmPagingFile[MAX_PAGING_FILES];
/* Lock for examining the list of paging files */ /* Lock for examining the list of paging files */
static KSPIN_LOCK PagingFileListLock; static KSPIN_LOCK PagingFileListLock;
@ -224,7 +225,7 @@ MiReadPageFile(
KEVENT Event; KEVENT Event;
UCHAR MdlBase[sizeof(MDL) + sizeof(ULONG)]; UCHAR MdlBase[sizeof(MDL) + sizeof(ULONG)];
PMDL Mdl = (PMDL)MdlBase; PMDL Mdl = (PMDL)MdlBase;
PPAGINGFILE PagingFile; PMMPAGING_FILE PagingFile;
DPRINT("MiReadSwapFile\n"); DPRINT("MiReadSwapFile\n");
@ -289,7 +290,7 @@ MmInitPagingFile(VOID)
} }
static ULONG static ULONG
MiAllocPageFromPagingFile(PPAGINGFILE PagingFile) MiAllocPageFromPagingFile(PMMPAGING_FILE PagingFile)
{ {
KIRQL oldIrql; KIRQL oldIrql;
ULONG off; ULONG off;
@ -308,7 +309,7 @@ MmFreeSwapPage(SWAPENTRY Entry)
ULONG i; ULONG i;
ULONG_PTR off; ULONG_PTR off;
KIRQL oldIrql; KIRQL oldIrql;
PPAGINGFILE PagingFile; PMMPAGING_FILE PagingFile;
i = FILE_FROM_ENTRY(Entry); i = FILE_FROM_ENTRY(Entry);
off = OFFSET_FROM_ENTRY(Entry) - 1; off = OFFSET_FROM_ENTRY(Entry) - 1;
@ -388,7 +389,7 @@ NtCreatePagingFile(IN PUNICODE_STRING FileName,
HANDLE FileHandle; HANDLE FileHandle;
IO_STATUS_BLOCK IoStatus; IO_STATUS_BLOCK IoStatus;
PFILE_OBJECT FileObject; PFILE_OBJECT FileObject;
PPAGINGFILE PagingFile; PMMPAGING_FILE PagingFile;
KIRQL oldIrql; KIRQL oldIrql;
ULONG AllocMapSize; ULONG AllocMapSize;
ULONG Count; ULONG Count;
@ -662,8 +663,9 @@ NtCreatePagingFile(IN PUNICODE_STRING FileName,
RtlClearAllBits(PagingFile->AllocMap); RtlClearAllBits(PagingFile->AllocMap);
KeAcquireSpinLock(&PagingFileListLock, &oldIrql); KeAcquireSpinLock(&PagingFileListLock, &oldIrql);
MmNumberOfPagingFiles++; ASSERT(MmPagingFile[MmNumberOfPagingFiles] == NULL);
MmPagingFile[MmNumberOfPagingFiles] = PagingFile; MmPagingFile[MmNumberOfPagingFiles] = PagingFile;
MmNumberOfPagingFiles++;
MiFreeSwapPages = MiFreeSwapPages + PagingFile->FreePages; MiFreeSwapPages = MiFreeSwapPages + PagingFile->FreePages;
KeReleaseSpinLock(&PagingFileListLock, oldIrql); KeReleaseSpinLock(&PagingFileListLock, oldIrql);