Introduce working set list types and extend EPROCESS structure
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 39s
Builds / ExectOS (amd64, debug) (push) Successful in 40s
Builds / ExectOS (i686, release) (push) Successful in 1m8s
Builds / ExectOS (i686, debug) (push) Successful in 1m10s

This commit is contained in:
2026-07-14 19:05:38 +02:00
parent e1c422c992
commit 34620b182a
9 changed files with 328 additions and 0 deletions

View File

@@ -444,5 +444,56 @@ 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:20;
} MMWSLENTRY, *PMMWSLENTRY;
/* Working set free entry structure definition */
typedef struct _MMWSLE_FREE_ENTRY
{
ULONG MustBeZero:1;
ULONG PreviousFree:11;
LONG NextFree:20;
} 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;
USHORT UsedPageTableEntries[768];
ULONG CommittedPageTables[24];
} MMWSL, *PMMWSL;
#endif /* __XTOS_ASSEMBLER__ */
#endif /* __XTDK_I686_MMTYPES_H */

View File

@@ -81,6 +81,9 @@ typedef struct _MMPML3_PTE_PROTOTYPE MMPML3_PTE_PROTOTYPE, *PMMPML3_PTE_PROTOTYP
typedef struct _MMPML3_PTE_SOFTWARE MMPML3_PTE_SOFTWARE, *PMMPML3_PTE_SOFTWARE;
typedef struct _MMPML3_PTE_SUBSECTION MMPML3_PTE_SUBSECTION, *PMMPML3_PTE_SUBSECTION;
typedef struct _MMPML3_PTE_TRANSITION MMPML3_PTE_TRANSITION, *PMMPML3_PTE_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;
@@ -97,6 +100,7 @@ typedef union _MMPML3_PTE MMPML3_PTE, *PMMPML3_PTE;
typedef union _MMPTE MMPDE, *PMMPDE;
typedef union _MMPTE MMPPE, *PMMPPE;
typedef union _MMPTE MMPTE, *PMMPTE;
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;