Introduce working set list types and extend EPROCESS structure
This commit is contained in:
@@ -352,5 +352,62 @@ typedef struct _POOL_DESCRIPTOR
|
||||
SIZE_T Reserved;
|
||||
} POOL_DESCRIPTOR, *PPOOL_DESCRIPTOR;
|
||||
|
||||
/* Working set list entry structure definition */
|
||||
typedef struct _MMWSLENTRY
|
||||
{
|
||||
ULONG_PTR Valid:1;
|
||||
ULONG_PTR LockedInWs:1;
|
||||
ULONG_PTR LockedInMemory:1;
|
||||
ULONG_PTR Protection:5;
|
||||
ULONG_PTR Hashed:1;
|
||||
ULONG_PTR Direct:1;
|
||||
ULONG_PTR Age:2;
|
||||
ULONG_PTR VirtualPageNumber:52;
|
||||
} MMWSLENTRY, *PMMWSLENTRY;
|
||||
|
||||
/* Working set free entry structure definition */
|
||||
typedef struct _MMWSLE_FREE_ENTRY
|
||||
{
|
||||
ULONG MustBeZero:1;
|
||||
ULONG PreviousFree:31;
|
||||
LONG NextFree;
|
||||
} MMWSLE_FREE_ENTRY, *PMMWSLE_FREE_ENTRY;
|
||||
|
||||
/* Working set list entry union definition */
|
||||
typedef union _MMWSLE
|
||||
{
|
||||
PVOID VirtualAddress;
|
||||
ULONG_PTR Long;
|
||||
MMWSLENTRY e1;
|
||||
MMWSLE_FREE_ENTRY Free;
|
||||
} MMWSLE, *PMMWSLE;
|
||||
|
||||
/* Working set list structure definition */
|
||||
typedef struct _MMWSL
|
||||
{
|
||||
ULONG FirstFree;
|
||||
ULONG FirstDynamic;
|
||||
ULONG LastEntry;
|
||||
ULONG NextSlot;
|
||||
PMMWSLE Wsle;
|
||||
ULONG LastInitializedWsle;
|
||||
ULONG NonDirectCount;
|
||||
PMMWSLE_HASH HashTable;
|
||||
ULONG HashTableSize;
|
||||
ULONG NumberOfCommittedPageTables;
|
||||
PVOID HashTableStart;
|
||||
PVOID HighestPermittedHashAddress;
|
||||
ULONG NumberOfImageWaiters;
|
||||
ULONG VadBitMapHint;
|
||||
PVOID HighestUserAddress;
|
||||
ULONG MaximumUserPageTablePages;
|
||||
ULONG MaximumUserPageDirectoryPages;
|
||||
PULONG CommittedPageTables;
|
||||
ULONG NumberOfCommittedPageDirectories;
|
||||
PULONG CommittedPageDirectories;
|
||||
ULONG NumberOfCommittedPageDirectoryParents;
|
||||
ULONGLONG CommittedPageDirectoryParents[1];
|
||||
} MMWSL, *PMMWSL;
|
||||
|
||||
#endif /* __XTOS_ASSEMBLER__ */
|
||||
#endif /* __XTDK_AMD64_MMTYPES_H */
|
||||
|
||||
@@ -72,6 +72,9 @@ typedef struct _MMPTE_PROTOTYPE MMPTE_PROTOTYPE, *PMMPTE_PROTOTYPE;
|
||||
typedef struct _MMPTE_SOFTWARE MMPTE_SOFTWARE, *PMMPTE_SOFTWARE;
|
||||
typedef struct _MMPTE_SUBSECTION MMPTE_SUBSECTION, *PMMPTE_SUBSECTION;
|
||||
typedef struct _MMPTE_TRANSITION MMPTE_TRANSITION, *PMMPTE_TRANSITION;
|
||||
typedef struct _MMWSL MMWSL, *PMMWSL;
|
||||
typedef struct _MMWSLE_FREE_ENTRY MMWSLE_FREE_ENTRY, *PMMWSLE_FREE_ENTRY;
|
||||
typedef struct _MMWSLENTRY MMWSLENTRY, *PMMWSLENTRY;
|
||||
typedef struct _POOL_DESCRIPTOR POOL_DESCRIPTOR, *PPOOL_DESCRIPTOR;
|
||||
typedef struct _THREAD_ENVIRONMENT_BLOCK THREAD_ENVIRONMENT_BLOCK, *PTHREAD_ENVIRONMENT_BLOCK;
|
||||
typedef struct _TIMER_CAPABILITIES TIMER_CAPABILITIES, *PTIMER_CAPABILITIES;
|
||||
@@ -87,6 +90,7 @@ typedef union _MMPTE MMPDE, *PMMPDE;
|
||||
typedef union _MMPTE MMPPE, *PMMPPE;
|
||||
typedef union _MMPTE MMPTE, *PMMPTE;
|
||||
typedef union _MMPTE MMPXE, *PMMPXE;
|
||||
typedef union _MMWSLE MMWSLE, *PMMWSLE;
|
||||
typedef union _PIC_I8259_ICW1 PIC_I8259_ICW1, *PPIC_I8259_ICW1;
|
||||
typedef union _PIC_I8259_ICW2 PIC_I8259_ICW2, *PPIC_I8259_ICW2;
|
||||
typedef union _PIC_I8259_ICW3 PIC_I8259_ICW3, *PPIC_I8259_ICW3;
|
||||
|
||||
Reference in New Issue
Block a user