mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
[NTOSKRNL] Close page files (and delete them!) on shutdown
This commit is contained in:
parent
d793f196df
commit
3814a822f1
3 changed files with 28 additions and 19 deletions
|
@ -102,6 +102,8 @@ typedef ULONG_PTR SWAPENTRY;
|
|||
#define SESSION_POOL_MASK 32
|
||||
#define VERIFIER_POOL_MASK 64
|
||||
|
||||
#define MAX_PAGING_FILES (16)
|
||||
|
||||
// FIXME: use ALIGN_UP_BY
|
||||
#define MM_ROUND_UP(x,s) \
|
||||
((PVOID)(((ULONG_PTR)(x)+(s)-1) & ~((ULONG_PTR)(s)-1)))
|
||||
|
@ -421,6 +423,22 @@ typedef struct _MM_PAGED_POOL_INFO
|
|||
|
||||
extern MM_MEMORY_CONSUMER MiMemoryConsumers[MC_MAXIMUM];
|
||||
|
||||
/* Page file information */
|
||||
typedef struct _MMPAGING_FILE
|
||||
{
|
||||
PFILE_OBJECT FileObject;
|
||||
HANDLE FileHandle;
|
||||
LARGE_INTEGER MaximumSize;
|
||||
LARGE_INTEGER CurrentSize;
|
||||
PFN_NUMBER FreePages;
|
||||
PFN_NUMBER UsedPages;
|
||||
PRTL_BITMAP AllocMap;
|
||||
KSPIN_LOCK AllocMapLock;
|
||||
}
|
||||
MMPAGING_FILE, *PMMPAGING_FILE;
|
||||
|
||||
extern PMMPAGING_FILE MmPagingFile[MAX_PAGING_FILES];
|
||||
|
||||
typedef VOID
|
||||
(*PMM_ALTER_REGION_FUNC)(
|
||||
PMMSUPPORT AddressSpace,
|
||||
|
|
|
@ -36,30 +36,12 @@
|
|||
#pragma alloc_text(INIT, MmInitPagingFile)
|
||||
#endif
|
||||
|
||||
|
||||
/* TYPES *********************************************************************/
|
||||
|
||||
typedef struct _MMPAGING_FILE
|
||||
{
|
||||
PFILE_OBJECT FileObject;
|
||||
HANDLE FileHandle;
|
||||
LARGE_INTEGER MaximumSize;
|
||||
LARGE_INTEGER CurrentSize;
|
||||
PFN_NUMBER FreePages;
|
||||
PFN_NUMBER UsedPages;
|
||||
PRTL_BITMAP AllocMap;
|
||||
KSPIN_LOCK AllocMapLock;
|
||||
}
|
||||
MMPAGING_FILE, *PMMPAGING_FILE;
|
||||
|
||||
/* GLOBALS *******************************************************************/
|
||||
|
||||
#define PAIRS_PER_RUN (1024)
|
||||
|
||||
#define MAX_PAGING_FILES (16)
|
||||
|
||||
/* List of paging files, both used and free */
|
||||
static PMMPAGING_FILE MmPagingFile[MAX_PAGING_FILES];
|
||||
PMMPAGING_FILE MmPagingFile[MAX_PAGING_FILES];
|
||||
|
||||
/* Lock for examining the list of paging files */
|
||||
static KSPIN_LOCK PagingFileListLock;
|
||||
|
|
|
@ -20,6 +20,15 @@
|
|||
VOID
|
||||
MiShutdownSystem(VOID)
|
||||
{
|
||||
ULONG i;
|
||||
|
||||
/* Loop through all the paging files */
|
||||
for (i = 0; i < MmNumberOfPagingFiles; i++)
|
||||
{
|
||||
/* And close them */
|
||||
ZwClose(MmPagingFile[i]->FileHandle);
|
||||
}
|
||||
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue