Introduce working set list types and extend EPROCESS structure
This commit is contained in:
@@ -12,6 +12,8 @@
|
||||
#include <xttypes.h>
|
||||
#include <xtstruct.h>
|
||||
#include <extypes.h>
|
||||
#include <mmtypes.h>
|
||||
#include <setypes.h>
|
||||
|
||||
|
||||
/* Quota bypass marker */
|
||||
@@ -74,11 +76,62 @@ typedef struct _EPROCESS
|
||||
LARGE_INTEGER ExitTime;
|
||||
EX_RUNDOWN_REFERENCE RundownProtect;
|
||||
HANDLE UniqueProcessId;
|
||||
LIST_ENTRY ActiveProcessLinks;
|
||||
SIZE_T QuotaUsage[PsQuotaTypes];
|
||||
SIZE_T QuotaPeak[PsQuotaTypes];
|
||||
PVOID DebugPort;
|
||||
PVOID ExceptionPort;
|
||||
PHANDLE_TABLE ObjectTable;
|
||||
PVOID Job;
|
||||
PVOID SectionObject;
|
||||
PVOID SectionBaseAddress;
|
||||
PEPROCESS_QUOTA_BLOCK QuotaBlock;
|
||||
HANDLE InheritedFromUniqueProcessId;
|
||||
CHAR ImageFileName[16];
|
||||
LIST_ENTRY ThreadListHead;
|
||||
ACCESS_MASK GrantedAccess;
|
||||
ULONG DefaultHardErrorProcessing;
|
||||
PPEB ProcessEnvironmentBlock;
|
||||
SECURITY_AUDIT_PROCESS_CREATION_INFO AuditProcessCreationInfo;
|
||||
MMSUPPORT Vm;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
ULONG CreateReported:1;
|
||||
ULONG NoDebugInherit:1;
|
||||
ULONG ProcessExiting:1;
|
||||
ULONG ProcessDelete:1;
|
||||
ULONG Reserved1:1;
|
||||
ULONG VmDeleted:1;
|
||||
ULONG OutswapEnabled:1;
|
||||
ULONG Outswapped:1;
|
||||
ULONG ForkFailed:1;
|
||||
ULONG Reserved2:1;
|
||||
ULONG AddressSpaceInitialized:2;
|
||||
ULONG SetTimerResolution:1;
|
||||
ULONG BreakOnTermination:1;
|
||||
ULONG DeprioritizeViews:1;
|
||||
ULONG WriteWatch:1;
|
||||
ULONG ProcessInSession:1;
|
||||
ULONG OverrideAddressSpace:1;
|
||||
ULONG HasAddressSpace:1;
|
||||
ULONG LaunchPrefetched:1;
|
||||
ULONG InjectInpageErrors:1;
|
||||
ULONG VmTopDown:1;
|
||||
ULONG ImageNotifyDone:1;
|
||||
ULONG PdeUpdateNeeded:1;
|
||||
ULONG Reserved3:1;
|
||||
ULONG SmapAllowed:1;
|
||||
ULONG ProcessInserted:1;
|
||||
ULONG DefaultIoPriority:3;
|
||||
ULONG Reserved4:1;
|
||||
ULONG Reserved5:1;
|
||||
};
|
||||
ULONG Flags;
|
||||
};
|
||||
XTSTATUS ExitStatus;
|
||||
UCHAR PriorityClass;
|
||||
} EPROCESS, *PEPROCESS;
|
||||
|
||||
/* Kernel's representation of a process quota entry*/
|
||||
@@ -106,5 +159,90 @@ typedef struct _ETHREAD
|
||||
ACCESS_MASK GrantedAccess;
|
||||
} ETHREAD, *PETHREAD;
|
||||
|
||||
/* Kernel's representation of a process environment block */
|
||||
typedef struct _PEB
|
||||
{
|
||||
BOOLEAN InheritedAddressSpace;
|
||||
BOOLEAN ReadImageFileExecOptions;
|
||||
BOOLEAN BeingDebugged;
|
||||
union
|
||||
{
|
||||
BOOLEAN BitField;
|
||||
struct
|
||||
{
|
||||
BOOLEAN ImageUsesLargePages:1;
|
||||
BOOLEAN IsProtectedProcess:1;
|
||||
BOOLEAN IsLegacyProcess:1;
|
||||
BOOLEAN IsImageDynamicallyRelocated:1;
|
||||
BOOLEAN SkipPatchingUser32Forwarders:1;
|
||||
BOOLEAN SpareBits:3;
|
||||
};
|
||||
};
|
||||
HANDLE Mutant;
|
||||
PVOID ImageBaseAddress;
|
||||
PLDR_PEB_DATA Ldr;
|
||||
PVOID SubSystemData;
|
||||
PVOID ProcessHeap;
|
||||
PVOID AltThunkSListPtr;
|
||||
PVOID SparePtr2;
|
||||
ULONG EnvironmentUpdateCount;
|
||||
PVOID KernelCallbackTable;
|
||||
ULONG SystemReserved[1];
|
||||
ULONG SpareUlong;
|
||||
PPEB_FREE_BLOCK FreeList;
|
||||
ULONG TlsExpansionCounter;
|
||||
PVOID TlsBitmap;
|
||||
ULONG TlsBitmapBits[2];
|
||||
PVOID ReadOnlySharedMemoryBase;
|
||||
PVOID HotpatchInformation;
|
||||
PVOID* ReadOnlyStaticServerData;
|
||||
PVOID AnsiCodePageData;
|
||||
PVOID OemCodePageData;
|
||||
PVOID UnicodeCaseTableData;
|
||||
ULONG NumberOfProcessors;
|
||||
ULONG NtGlobalFlag;
|
||||
LARGE_INTEGER CriticalSectionTimeout;
|
||||
ULONG_PTR HeapSegmentReserve;
|
||||
ULONG_PTR HeapSegmentCommit;
|
||||
ULONG_PTR HeapDeCommitTotalFreeThreshold;
|
||||
ULONG_PTR HeapDeCommitFreeBlockThreshold;
|
||||
ULONG NumberOfHeaps;
|
||||
ULONG MaximumNumberOfHeaps;
|
||||
PVOID* ProcessHeaps;
|
||||
PVOID GdiSharedHandleTable;
|
||||
PVOID ProcessStarterHelper;
|
||||
ULONG GdiDCAttributeList;
|
||||
ULONG OSMajorVersion;
|
||||
ULONG OSMinorVersion;
|
||||
USHORT OSBuildNumber;
|
||||
USHORT OSCSDVersion;
|
||||
ULONG OSPlatformId;
|
||||
ULONG ImageSubsystem;
|
||||
ULONG ImageSubsystemMajorVersion;
|
||||
ULONG ImageSubsystemMinorVersion;
|
||||
ULONG_PTR ImageProcessAffinityMask;
|
||||
PVOID TlsExpansionBitmap;
|
||||
ULONG TlsExpansionBitmapBits[32];
|
||||
ULONG SessionId;
|
||||
ULARGE_INTEGER AppCompatFlags;
|
||||
ULARGE_INTEGER AppCompatFlagsUser;
|
||||
PVOID pShimData;
|
||||
PVOID AppCompatInfo;
|
||||
UNICODE_STRING CSDVersion;
|
||||
ULONG_PTR MinimumStackCommit;
|
||||
PVOID* FlsCallback;
|
||||
LIST_ENTRY FlsListHead;
|
||||
PVOID FlsBitmap;
|
||||
ULONG FlsBitmapBits[4];
|
||||
ULONG FlsHighIndex;
|
||||
} PEB, *PPEB;
|
||||
|
||||
/* Process Environment Block Free Block structure definition */
|
||||
typedef struct _PEB_FREE_BLOCK
|
||||
{
|
||||
PPEB_FREE_BLOCK Next;
|
||||
ULONG Size;
|
||||
} PEB_FREE_BLOCK, *PPEB_FREE_BLOCK;
|
||||
|
||||
#endif /* __XTOS_ASSEMBLER__ */
|
||||
#endif /* __XTDK_PSTYPES_H */
|
||||
|
||||
Reference in New Issue
Block a user