struct _EPROCESS
{
struct _KPROCESS Pcb;
struct _EX_PUSH_LOCK ProcessLock;
VOID* UniqueProcessId;
struct _LIST_ENTRY ActiveProcessLinks;
struct _EX_RUNDOWN_REF RundownProtect;
union
{
ULONG Flags2;
struct
{
ULONG JobNotReallyActive:
1;
ULONG AccountingFolded:
1;
ULONG NewProcessReported:
1;
ULONG ExitProcessReported:
1;
ULONG ReportCommitChanges:
1;
ULONG LastReportMemory:
1;
ULONG ForceWakeCharge:
1;
ULONG CrossSessionCreate:
1;
ULONG NeedsHandleRundown:
1;
ULONG RefTraceEnabled:
1;
ULONG PicoCreated:
1;
ULONG EmptyJobEvaluated:
1;
ULONG DefaultPagePriority:
3;
ULONG PrimaryTokenFrozen:
1;
ULONG ProcessVerifierTarget:
1;
ULONG RestrictSetThreadContext:
1;
ULONG AffinityPermanent:
1;
ULONG AffinityUpdateEnable:
1;
ULONG PropagateNode:
1;
ULONG ExplicitAffinity:
1;
ULONG ProcessExecutionState:
2;
ULONG EnableReadVmLogging:
1;
ULONG EnableWriteVmLogging:
1;
ULONG FatalAccessTerminationRequested:
1;
ULONG DisableSystemAllowedCpuSet:
1;
ULONG ProcessStateChangeRequest:
2;
ULONG ProcessStateChangeInProgress:
1;
ULONG InPrivate:
1;
};
};
union
{
ULONG Flags;
struct
{
ULONG CreateReported:
1;
ULONG NoDebugInherit:
1;
ULONG ProcessExiting:
1;
ULONG ProcessDelete:
1;
ULONG ManageExecutableMemoryWrites:
1;
ULONG VmDeleted:
1;
ULONG OutswapEnabled:
1;
ULONG Outswapped:
1;
ULONG FailFastOnCommitFail:
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 Background:
1;
ULONG VmTopDown:
1;
ULONG ImageNotifyDone:
1;
ULONG PdeUpdateNeeded:
1;
ULONG VdmAllowed:
1;
ULONG ProcessRundown:
1;
ULONG ProcessInserted:
1;
ULONG DefaultIoPriority:
3;
ULONG ProcessSelfDelete:
1;
ULONG SetTimerResolutionLink:
1;
};
};
union _LARGE_INTEGER CreateTime;
ULONGLONG ProcessQuotaUsage[
2];
ULONGLONG ProcessQuotaPeak[
2];
ULONGLONG PeakVirtualSize;
ULONGLONG VirtualSize;
struct _LIST_ENTRY SessionProcessLinks;
union
{
VOID* ExceptionPortData;
ULONGLONG ExceptionPortValue;
ULONGLONG ExceptionPortState:
3;
};
struct _EX_FAST_REF Token;
ULONGLONG MmReserved;
struct _EX_PUSH_LOCK AddressCreationLock;
struct _EX_PUSH_LOCK PageTableCommitmentLock;
struct _ETHREAD* RotateInProgress;
struct _ETHREAD* ForkInProgress;
struct _EJOB* volatile CommitChargeJob;
struct _RTL_AVL_TREE CloneRoot;
volatile ULONGLONG NumberOfPrivatePages;
volatile ULONGLONG NumberOfLockedPages;
VOID* Win32Process;
struct _EJOB* volatile Job;
VOID* SectionObject;
VOID* SectionBaseAddress;
ULONG Cookie;
struct _PAGEFAULT_HISTORY* WorkingSetWatch;
VOID* Win32WindowStation;
VOID* InheritedFromUniqueProcessId;
volatile ULONGLONG OwnerProcessId;
struct _PEB* Peb;
struct _MM_SESSION_SPACE* Session;
VOID* Spare1;
struct _EPROCESS_QUOTA_BLOCK* QuotaBlock;
struct _HANDLE_TABLE* ObjectTable;
VOID* DebugPort;
struct _EWOW64PROCESS* WoW64Process;
VOID* DeviceMap;
VOID* EtwDataSource;
ULONGLONG PageDirectoryPte;
struct _FILE_OBJECT* ImageFilePointer;
UCHAR ImageFileName[
15];
UCHAR PriorityClass;
VOID* SecurityPort;
struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo;
struct _LIST_ENTRY JobLinks;
VOID* HighestUserAddress;
struct _LIST_ENTRY ThreadListHead;
volatile ULONG ActiveThreads;
ULONG ImagePathHash;
ULONG DefaultHardErrorProcessing;
LONG LastThreadExitStatus;
struct _EX_FAST_REF PrefetchTrace;
VOID* LockedPagesList;
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 CommitCharge;
volatile ULONGLONG CommitChargePeak;
struct _MMSUPPORT_FULL Vm;
struct _LIST_ENTRY MmProcessLinks;
ULONG ModifiedPageCount;
LONG ExitStatus;
struct _RTL_AVL_TREE VadRoot;
VOID* VadHint;
ULONGLONG VadCount;
volatile ULONGLONG VadPhysicalPages;
ULONGLONG VadPhysicalPagesLimit;
struct _ALPC_PROCESS_CONTEXT AlpcContext;
struct _LIST_ENTRY TimerResolutionLink;
struct _PO_DIAG_STACK_RECORD* TimerResolutionStackRecord;
ULONG RequestedTimerResolution;
ULONG SmallestTimerResolution;
union _LARGE_INTEGER ExitTime;
struct _INVERTED_FUNCTION_TABLE* InvertedFunctionTable;
struct _EX_PUSH_LOCK InvertedFunctionTableLock;
ULONG ActiveThreadsHighWatermark;
ULONG LargePrivateVadCount;
struct _EX_PUSH_LOCK ThreadListLock;
VOID* WnfContext;
struct _EJOB* ServerSilo;
UCHAR SignatureLevel;
UCHAR SectionSignatureLevel;
struct _PS_PROTECTION Protection;
UCHAR HangCount:
3;
UCHAR GhostCount:
3;
UCHAR PrefilterException:
1;
union
{
ULONG Flags3;
struct
{
ULONG Minimal:
1;
ULONG ReplacingPageRoot:
1;
ULONG Crashed:
1;
ULONG JobVadsAreTracked:
1;
ULONG VadTrackingDisabled:
1;
ULONG AuxiliaryProcess:
1;
ULONG SubsystemProcess:
1;
ULONG IndirectCpuSets:
1;
ULONG RelinquishedCommit:
1;
ULONG HighGraphicsPriority:
1;
ULONG CommitFailLogged:
1;
ULONG ReserveFailLogged:
1;
ULONG SystemProcess:
1;
ULONG HideImageBaseAddresses:
1;
ULONG AddressPolicyFrozen:
1;
ULONG ProcessFirstResume:
1;
ULONG ForegroundExternal:
1;
ULONG ForegroundSystem:
1;
ULONG HighMemoryPriority:
1;
ULONG EnableProcessSuspendResumeLogging:
1;
ULONG EnableThreadSuspendResumeLogging:
1;
ULONG SecurityDomainChanged:
1;
ULONG SecurityFreezeComplete:
1;
ULONG VmProcessorHost:
1;
ULONG VmProcessorHostTransition:
1;
ULONG AltSyscall:
1;
ULONG TimerResolutionIgnore:
1;
};
};
LONG DeviceAsid;
VOID* SvmData;
struct _EX_PUSH_LOCK SvmProcessLock;
ULONGLONG SvmLock;
struct _LIST_ENTRY SvmProcessDeviceListHead;
ULONGLONG LastFreezeInterruptTime;
struct _PROCESS_DISK_COUNTERS* DiskCounters;
VOID* PicoContext;
VOID* EnclaveTable;
ULONGLONG EnclaveNumber;
struct _EX_PUSH_LOCK EnclaveLock;
ULONG HighPriorityFaultsAllowed;
struct _PO_PROCESS_ENERGY_CONTEXT* EnergyContext;
VOID* VmContext;
ULONGLONG SequenceNumber;
ULONGLONG CreateInterruptTime;
ULONGLONG CreateUnbiasedInterruptTime;
ULONGLONG TotalUnbiasedFrozenTime;
ULONGLONG LastAppStateUpdateTime;
ULONGLONG LastAppStateUptime:
61;
ULONGLONG LastAppState:
3;
volatile ULONGLONG SharedCommitCharge;
struct _EX_PUSH_LOCK SharedCommitLock;
struct _LIST_ENTRY SharedCommitLinks;
union
{
struct
{
ULONGLONG AllowedCpuSets;
ULONGLONG DefaultCpuSets;
};
struct
{
ULONGLONG* AllowedCpuSetsIndirect;
ULONGLONG* DefaultCpuSetsIndirect;
};
};
VOID* DiskIoAttribution;
VOID* DxgProcess;
ULONG Win32KFilterSet;
unionvolatile
_PS_INTERLOCKED_TIMER_DELAY_VALUES ProcessTimerDelay;
volatile ULONG KTimerSets;
volatile ULONG KTimer2Sets;
volatile ULONG ThreadTimerSets;
ULONGLONG VirtualTimerListLock;
struct _LIST_ENTRY VirtualTimerListHead;
union
{
struct _WNF_STATE_NAME WakeChannel;
struct _PS_PROCESS_WAKE_INFORMATION WakeInfo;
};
union
{
ULONG MitigationFlags;
struct
{
ULONG ControlFlowGuardEnabled:
1;
ULONG ControlFlowGuardExportSuppressionEnabled:
1;
ULONG ControlFlowGuardStrict:
1;
ULONG DisallowStrippedImages:
1;
ULONG ForceRelocateImages:
1;
ULONG HighEntropyASLREnabled:
1;
ULONG StackRandomizationDisabled:
1;
ULONG ExtensionPointDisable:
1;
ULONG DisableDynamicCode:
1;
ULONG DisableDynamicCodeAllowOptOut:
1;
ULONG DisableDynamicCodeAllowRemoteDowngrade:
1;
ULONG AuditDisableDynamicCode:
1;
ULONG DisallowWin32kSystemCalls:
1;
ULONG AuditDisallowWin32kSystemCalls:
1;
ULONG EnableFilteredWin32kAPIs:
1;
ULONG AuditFilteredWin32kAPIs:
1;
ULONG DisableNonSystemFonts:
1;
ULONG AuditNonSystemFontLoading:
1;
ULONG PreferSystem32Images:
1;
ULONG ProhibitRemoteImageMap:
1;
ULONG AuditProhibitRemoteImageMap:
1;
ULONG ProhibitLowILImageMap:
1;
ULONG AuditProhibitLowILImageMap:
1;
ULONG SignatureMitigationOptIn:
1;
ULONG AuditBlockNonMicrosoftBinaries:
1;
ULONG AuditBlockNonMicrosoftBinariesAllowStore:
1;
ULONG LoaderIntegrityContinuityEnabled:
1;
ULONG AuditLoaderIntegrityContinuity:
1;
ULONG EnableModuleTamperingProtection:
1;
ULONG EnableModuleTamperingProtectionNoInherit:
1;
ULONG RestrictIndirectBranchPrediction:
1;
ULONG IsolateSecurityDomain:
1;
} MitigationFlagsValues;
};
union
{
ULONG MitigationFlags2;
struct
{
ULONG EnableExportAddressFilter:
1;
ULONG AuditExportAddressFilter:
1;
ULONG EnableExportAddressFilterPlus:
1;
ULONG AuditExportAddressFilterPlus:
1;
ULONG EnableRopStackPivot:
1;
ULONG AuditRopStackPivot:
1;
ULONG EnableRopCallerCheck:
1;
ULONG AuditRopCallerCheck:
1;
ULONG EnableRopSimExec:
1;
ULONG AuditRopSimExec:
1;
ULONG EnableImportAddressFilter:
1;
ULONG AuditImportAddressFilter:
1;
ULONG DisablePageCombine:
1;
ULONG SpeculativeStoreBypassDisable:
1;
ULONG CetUserShadowStacks:
1;
ULONG AuditCetUserShadowStacks:
1;
ULONG AuditCetUserShadowStacksLogged:
1;
ULONG UserCetSetContextIpValidation:
1;
ULONG AuditUserCetSetContextIpValidation:
1;
ULONG AuditUserCetSetContextIpValidationLogged:
1;
} MitigationFlags2Values;
};
VOID* PartitionObject;
ULONGLONG SecurityDomain;
ULONGLONG ParentSecurityDomain;
VOID* CoverageSamplerContext;
VOID* MmHotPatchContext;
struct _RTL_AVL_TREE DynamicEHContinuationTargetsTree;
struct _EX_PUSH_LOCK DynamicEHContinuationTargetsLock;
};