struct _EPROCESS
{
struct _KPROCESS Pcb;
struct _EX_PUSH_LOCK ProcessLock;
union _LARGE_INTEGER CreateTime;
union _LARGE_INTEGER ExitTime;
struct _EX_RUNDOWN_REF RundownProtect;
VOID* UniqueProcessId;
struct _LIST_ENTRY ActiveProcessLinks;
ULONGLONG QuotaUsage[
3];
ULONGLONG QuotaPeak[
3];
volatile ULONGLONG CommitCharge;
ULONGLONG PeakVirtualSize;
ULONGLONG VirtualSize;
struct _LIST_ENTRY SessionProcessLinks;
VOID* DebugPort;
union
{
VOID* ExceptionPortData;
ULONGLONG ExceptionPortValue;
ULONGLONG ExceptionPortState:
3;
};
struct _HANDLE_TABLE* ObjectTable;
struct _EX_FAST_REF Token;
ULONGLONG WorkingSetPage;
struct _EX_PUSH_LOCK AddressCreationLock;
struct _ETHREAD* RotateInProgress;
struct _ETHREAD* ForkInProgress;
ULONGLONG HardwareTrigger;
struct _MM_AVL_TABLE* PhysicalVadRoot;
VOID* CloneRoot;
volatile ULONGLONG NumberOfPrivatePages;
volatile ULONGLONG NumberOfLockedPages;
VOID* Win32Process;
struct _EJOB* Job;
VOID* SectionObject;
VOID* SectionBaseAddress;
struct _EPROCESS_QUOTA_BLOCK* QuotaBlock;
struct _PAGEFAULT_HISTORY* WorkingSetWatch;
VOID* Win32WindowStation;
VOID* InheritedFromUniqueProcessId;
VOID* LdtInformation;
VOID* Spare;
VOID* VdmObjects;
VOID* DeviceMap;
VOID* EtwDataSource;
VOID* FreeTebHint;
union
{
struct _HARDWARE_PTE PageDirectoryPte;
ULONGLONG Filler;
};
VOID* Session;
UCHAR ImageFileName[
16];
struct _LIST_ENTRY JobLinks;
VOID* LockedPagesList;
struct _LIST_ENTRY ThreadListHead;
VOID* SecurityPort;
VOID* Wow64Process;
volatile ULONG ActiveThreads;
ULONG ImagePathHash;
ULONG DefaultHardErrorProcessing;
LONG LastThreadExitStatus;
struct _PEB* Peb;
struct _EX_FAST_REF PrefetchTrace;
union _LARGE_INTEGER ReadOperationCount;
union _LARGE_INTEGER WriteOperationCount;
union _LARGE_INTEGER OtherOperationCount;
union _LARGE_INTEGER ReadTransferCount;
union _LARGE_INTEGER WriteTransferCount;
union _LARGE_INTEGER OtherTransferCount;
ULONGLONG CommitChargeLimit;
volatile ULONGLONG CommitChargePeak;
VOID* AweInfo;
struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo;
struct _MMSUPPORT Vm;
struct _LIST_ENTRY MmProcessLinks;
ULONG ModifiedPageCount;
union
{
ULONG Flags2;
struct
{
ULONG JobNotReallyActive:
1;
ULONG AccountingFolded:
1;
ULONG NewProcessReported:
1;
ULONG ExitProcessReported:
1;
ULONG ReportCommitChanges:
1;
ULONG LastReportMemory:
1;
ULONG ReportPhysicalPageChanges:
1;
ULONG HandleTableRundown:
1;
ULONG NeedsHandleRundown:
1;
ULONG RefTraceEnabled:
1;
ULONG NumaAware:
1;
ULONG ProtectedProcess:
1;
ULONG DefaultPagePriority:
3;
ULONG PrimaryTokenFrozen:
1;
ULONG ProcessVerifierTarget:
1;
ULONG StackRandomizationDisabled:
1;
ULONG AffinityPermanent:
1;
ULONG AffinityUpdateEnable:
1;
ULONG CrossSessionCreate:
1;
};
};
union
{
ULONG Flags;
struct
{
ULONG CreateReported:
1;
ULONG NoDebugInherit:
1;
ULONG ProcessExiting:
1;
ULONG ProcessDelete:
1;
ULONG Wow64SplitPages:
1;
ULONG VmDeleted:
1;
ULONG OutswapEnabled:
1;
ULONG Outswapped:
1;
ULONG ForkFailed:
1;
ULONG Wow64VaSpace4Gb:
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 VdmAllowed:
1;
ULONG SmapAllowed:
1;
ULONG ProcessInserted:
1;
ULONG DefaultIoPriority:
3;
ULONG ProcessSelfDelete:
1;
ULONG SpareProcessFlags:
1;
};
};
LONG ExitStatus;
USHORT Spare7;
union
{
struct
{
UCHAR SubSystemMinorVersion;
UCHAR SubSystemMajorVersion;
};
USHORT SubSystemVersion;
};
UCHAR PriorityClass;
struct _MM_AVL_TABLE VadRoot;
ULONG Cookie;
struct _ALPC_PROCESS_CONTEXT AlpcContext;
};