_KPRCB

//0xcf00 bytes (sizeof) struct _KPRCB { ULONG MxCsr; //0x0 UCHAR LegacyNumber; //0x4 UCHAR ReservedMustBeZero; //0x5 UCHAR InterruptRequest; //0x6 UCHAR IdleHalt; //0x7 struct _KTHREAD* CurrentThread; //0x8 struct _KTHREAD* NextThread; //0x10 struct _KTHREAD* IdleThread; //0x18 UCHAR NestingLevel; //0x20 UCHAR ClockOwner; //0x21 union { UCHAR PendingTickFlags; //0x22 struct { UCHAR PendingTick:1; //0x22 UCHAR PendingBackupTick:1; //0x22 }; }; UCHAR IdleState; //0x23 ULONG Number; //0x24 ULONGLONG RspBase; //0x28 ULONGLONG PrcbLock; //0x30 union _KPRIORITY_STATE* PriorityState; //0x38 CHAR CpuType; //0x40 CHAR CpuID; //0x41 union { USHORT CpuStep; //0x42 struct { UCHAR CpuStepping; //0x42 UCHAR CpuModel; //0x43 }; }; ULONG MHz; //0x44 ULONGLONG HalReserved[8]; //0x48 USHORT MinorVersion; //0x88 USHORT MajorVersion; //0x8a UCHAR BuildType; //0x8c UCHAR CpuVendor; //0x8d UCHAR LegacyCoresPerPhysicalProcessor; //0x8e UCHAR LegacyLogicalProcessorsPerCore; //0x8f ULONGLONG TscFrequency; //0x90 struct _KPRCB_TRACEPOINT_LOG* TracepointLog; //0x98 ULONG CoresPerPhysicalProcessor; //0xa0 ULONG LogicalProcessorsPerCore; //0xa4 ULONG SelfIpiRequestSummary; //0xa8 UCHAR QpcToTscIncrementShift; //0xac UCHAR PrcbPad03[3]; //0xad ULONGLONG QpcToTscIncrement; //0xb0 ULONGLONG PrcbPad04; //0xb8 struct _KSCHEDULER_SUBNODE* SchedulerSubNode; //0xc0 ULONGLONG GroupSetMember; //0xc8 UCHAR Group; //0xd0 UCHAR GroupIndex; //0xd1 UCHAR PrcbPad05[2]; //0xd2 ULONG InitialApicId; //0xd4 ULONG ScbOffset; //0xd8 ULONG ApicMask; //0xdc VOID* AcpiReserved; //0xe0 ULONG CFlushSize; //0xe8 union { union _KPRCBFLAG PrcbFlags; //0xec ULONG PrcbFlagsReserved; //0xec }; ULONGLONG PrcbPad11[2]; //0xf0 struct _KPROCESSOR_STATE ProcessorState; //0x100 struct _XSAVE_AREA_HEADER* ExtendedSupervisorState; //0x6c0 ULONG ProcessorSignature; //0x6c8 ULONG ProcessorFlags; //0x6cc union { struct { ULONGLONG TrappedSecurityDomain; //0x6d0 union _KPRCB_BPB_STATE BpbState; //0x6d8 union _KPRCB_BPB_STATE BpbTrappedBpbState; //0x6da union _KPRCB_BPB_FEATURES BpbFeatures; //0x6dc UCHAR PrcbPad12b; //0x6dd union _KPRCB_BPB_RETPOLINE_STATE BpbRetpolineState; //0x6de UCHAR BpbRetpolineStateOverflow; //0x6df volatile SHORT PairRegister; //0x6e0 USHORT BpbRetpolineExitSpecCtrl; //0x6e2 USHORT BpbTrappedRetpolineExitSpecCtrl; //0x6e4 USHORT BpbCurrentSpecCtrl; //0x6e6 USHORT BpbKernelSpecCtrl; //0x6e8 USHORT BpbNmiSpecCtrl; //0x6ea USHORT BpbUserSpecCtrl; //0x6ec USHORT PrcbPad12c[1]; //0x6ee }; ULONGLONG PrcbPad12a[4]; //0x6d0 }; struct _KSPIN_LOCK_QUEUE LockQueue[17]; //0x6f0 struct _PP_LOOKASIDE_LIST PPLookasideList[16]; //0x800 struct _GENERAL_LOOKASIDE_POOL PPNxPagedLookasideList[32]; //0x900 struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; //0x1500 struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; //0x2100 ULONGLONG MsrIa32TsxCtrl; //0x2d00 struct _SINGLE_LIST_ENTRY DeferredReadyListHead; //0x2d08 volatile LONG MmPageFaultCount; //0x2d10 volatile LONG MmCopyOnWriteCount; //0x2d14 volatile LONG MmTransitionCount; //0x2d18 volatile LONG MmDemandZeroCount; //0x2d1c volatile LONG MmPageReadCount; //0x2d20 volatile LONG MmPageReadIoCount; //0x2d24 volatile LONG MmDirtyPagesWriteCount; //0x2d28 volatile LONG MmDirtyWriteIoCount; //0x2d2c volatile LONG MmMappedPagesWriteCount; //0x2d30 volatile LONG MmMappedWriteIoCount; //0x2d34 ULONG KeSystemCalls; //0x2d38 ULONG KeContextSwitches; //0x2d3c ULONG PrcbPad40; //0x2d40 ULONG CcFastReadNoWait; //0x2d44 ULONG CcFastReadWait; //0x2d48 ULONG CcFastReadNotPossible; //0x2d4c ULONG CcCopyReadNoWait; //0x2d50 ULONG CcCopyReadWait; //0x2d54 ULONG CcCopyReadNoWaitMiss; //0x2d58 volatile LONG IoReadOperationCount; //0x2d5c volatile LONG IoWriteOperationCount; //0x2d60 volatile LONG IoOtherOperationCount; //0x2d64 union _LARGE_INTEGER IoReadTransferCount; //0x2d68 union _LARGE_INTEGER IoWriteTransferCount; //0x2d70 union _LARGE_INTEGER IoOtherTransferCount; //0x2d78 volatile LONG PacketBarrier; //0x2d80 volatile LONG TargetCount; //0x2d84 volatile ULONG IpiFrozen; //0x2d88 ULONG PrcbPad30; //0x2d8c VOID* IsrDpcStats; //0x2d90 ULONG DeviceInterrupts; //0x2d98 LONG LookasideIrpFloat; //0x2d9c ULONG InterruptLastCount; //0x2da0 ULONG InterruptRate; //0x2da4 ULONGLONG PrcbPad31; //0x2da8 struct _KPRCB* PairPrcb; //0x2db0 struct _KSTATIC_AFFINITY_BLOCK StaticAffinity; //0x2db8 struct _KSOFTWARE_INTERRUPT_BATCH DeferredDispatchInterrupts; //0x35d8 struct _KI_RESCHEDULE_CONTEXT* StaticRescheduleContext; //0x37e8 struct _KCPU_PARTITION* volatile CpuPartition; //0x37f0 ULONGLONG PrcbPad35[1]; //0x37f8 union _SLIST_HEADER InterruptObjectPool; //0x3800 struct _RTL_HASH_TABLE* DpcRuntimeHistoryHashTable; //0x3810 struct _KDPC* DpcRuntimeHistoryHashTableCleanupDpc; //0x3818 VOID (*CurrentDpcRoutine)(struct _KDPC* arg1, VOID* arg2, VOID* arg3, VOID* arg4); //0x3820 ULONGLONG CurrentDpcRuntimeHistoryCached; //0x3828 ULONGLONG CurrentDpcStartTime; //0x3830 struct _KTHREAD* DpcDelegateThread; //0x3838 struct _KDPC_DATA DpcData[2]; //0x3840 VOID* DpcStack; //0x38a0 LONG MaximumDpcQueueDepth; //0x38a8 ULONG DpcRequestRate; //0x38ac ULONG MinimumDpcRate; //0x38b0 ULONG DpcLastCount; //0x38b4 UCHAR ThreadDpcEnable; //0x38b8 volatile UCHAR QuantumEnd; //0x38b9 volatile UCHAR DpcRoutineActive; //0x38ba volatile UCHAR IdleSchedule; //0x38bb union { volatile LONG DpcRequestSummary; //0x38bc SHORT DpcRequestSlot[2]; //0x38bc struct { SHORT NormalDpcState; //0x38bc SHORT ThreadDpcState; //0x38be }; struct { ULONG DpcNormalProcessingActive:1; //0x38bc ULONG DpcNormalProcessingRequested:1; //0x38bc ULONG DpcNormalThreadSignal:1; //0x38bc ULONG DpcNormalTimerExpiration:1; //0x38bc ULONG DpcNormalDpcPresent:1; //0x38bc ULONG DpcNormalLocalInterrupt:1; //0x38bc ULONG DpcNormalPriorityAntiStarvation:1; //0x38bc ULONG DpcNormalSwapToDpcDelegate:1; //0x38bc ULONG DpcNormalSpare:8; //0x38bc ULONG DpcThreadActive:1; //0x38bc ULONG DpcThreadRequested:1; //0x38bc ULONG DpcThreadSpare:14; //0x38bc }; }; ULONG LastTick; //0x38c0 ULONG ClockInterrupts; //0x38c4 ULONG ReadyScanTick; //0x38c8 ULONG SingleDpcSoftTimeLimitTicks; //0x38cc struct _KSINGLE_DPC_SOFT_TIMEOUT_EVENT_INFO* SingleDpcSoftTimeoutEventInfo; //0x38d0 ULONG CumulativeDpcSoftTimeLimitTicks; //0x38d8 ULONG DpcWatchdogProfileBufferSize; //0x38dc struct _KE_PRCB_RCU_DATA RcuData; //0x38e0 VOID* InterruptObject[256]; //0x3900 struct _KTIMER_TABLE TimerTable; //0x4100 VOID* DpcLog; //0x8318 ULONG DpcLogIndex; //0x8320 ULONG DpcLogBufferSize; //0x8324 ULONG PrcbPad92[6]; //0x8328 struct _KGATE DpcGate; //0x8340 VOID* PrcbPad52; //0x8358 struct _KDPC CallDpc; //0x8360 LONG ClockKeepAlive; //0x83a0 UCHAR PrcbPad60[2]; //0x83a4 union { struct { UCHAR NmiActive; //0x83a6 UCHAR MceActive; //0x83a7 }; USHORT CombinedNmiMceActive; //0x83a6 }; LONG DpcWatchdogPeriodTicks; //0x83a8 LONG DpcWatchdogCount; //0x83ac volatile LONG KeSpinLockOrdering; //0x83b0 ULONG DpcWatchdogProfileCumulativeDpcThresholdTicks; //0x83b4 VOID* CachedPtes; //0x83b8 struct _LIST_ENTRY WaitListHead; //0x83c0 ULONGLONG WaitLock; //0x83d0 ULONG ReadySummary; //0x83d8 LONG AffinitizedSelectionMask; //0x83dc ULONG QueueIndex; //0x83e0 ULONG NormalPriorityQueueIndex; //0x83e4 ULONG NormalPriorityReadyScanTick; //0x83e8 ULONG DpcWatchdogSequenceNumber; //0x83ec struct _KDPC TimerExpirationDpc; //0x83f0 struct _RTL_RB_TREE ScbQueue; //0x8430 struct _LIST_ENTRY DispatcherReadyListHead[32]; //0x8440 ULONG InterruptCount; //0x8640 ULONG KernelTime; //0x8644 ULONG UserTime; //0x8648 ULONG DpcTime; //0x864c ULONG InterruptTime; //0x8650 ULONG AdjustDpcThreshold; //0x8654 UCHAR DebuggerSavedIRQL; //0x8658 UCHAR GroupSchedulingOverQuota; //0x8659 volatile UCHAR DeepSleep; //0x865a UCHAR PrcbPad80; //0x865b ULONG DpcTimeCount; //0x865c ULONG DpcTimeLimitTicks; //0x8660 ULONG PeriodicCount; //0x8664 ULONG PeriodicBias; //0x8668 ULONG AvailableTime; //0x866c ULONG KeExceptionDispatchCount; //0x8670 ULONG ReadyThreadCount; //0x8674 ULONGLONG ReadyQueueExpectedRunTime; //0x8678 ULONGLONG StartCycles; //0x8680 ULONGLONG TaggedCycles[4]; //0x8688 ULONGLONG AffinitizedCycles; //0x86a8 ULONGLONG* CyclesByThreadType; //0x86b0 ULONG CpuCycleScalingFactor; //0x86b8 volatile USHORT PerformanceScoreByClass[8]; //0x86bc volatile USHORT EfficiencyScoreByClass[8]; //0x86cc UCHAR CycleAccumulationInitialized; //0x86dc UCHAR PrcbPad83[3]; //0x86dd struct _KMCE_RECOVERY_CONTEXT MceRecoveryContext; //0x86e0 struct _KFORCE_PARK_DUTY_CYCLE_DATA* ForceParkDutyCycleData; //0x86f0 ULONGLONG StartCyclesQpc; //0x86f8 ULONGLONG CycleTimeQpc; //0x8700 ULONGLONG NumberOfSecureFaults; //0x8708 ULONG PrcbPad84[8]; //0x8710 VOID* volatile CachedStacks[2]; //0x8730 ULONG DpcWatchdogProfileSingleDpcThresholdTicks; //0x8740 LONG PrcbPad82[3]; //0x8744 ULONG PageColor; //0x8750 ULONG NodeColor; //0x8754 ULONG PrcbPad87[2]; //0x8758 UCHAR PrcbPad81[5]; //0x8760 UCHAR SystemWorkKickInProgress; //0x8765 UCHAR ExceptionStackActive; //0x8766 UCHAR TbFlushListActive; //0x8767 VOID* ExceptionStack; //0x8768 volatile LONGLONG MmSpinLockOrdering; //0x8770 ULONGLONG CycleTime; //0x8778 ULONGLONG Cycles[4][2]; //0x8780 ULONG CcFastMdlReadNoWait; //0x87c0 ULONG CcFastMdlReadWait; //0x87c4 ULONG CcFastMdlReadNotPossible; //0x87c8 ULONG CcMapDataNoWait; //0x87cc ULONG CcMapDataWait; //0x87d0 ULONG CcPinMappedDataCount; //0x87d4 ULONG CcPinReadNoWait; //0x87d8 ULONG CcPinReadWait; //0x87dc ULONG CcMdlReadNoWait; //0x87e0 ULONG CcMdlReadWait; //0x87e4 ULONG CcLazyWriteHotSpots; //0x87e8 ULONG CcLazyWriteIos; //0x87ec ULONG CcLazyWritePages; //0x87f0 ULONG CcDataFlushes; //0x87f4 ULONG CcDataPages; //0x87f8 ULONG CcLostDelayedWrites; //0x87fc ULONG CcFastReadResourceMiss; //0x8800 ULONG CcCopyReadWaitMiss; //0x8804 ULONG CcFastMdlReadResourceMiss; //0x8808 ULONG CcMapDataNoWaitMiss; //0x880c ULONG CcMapDataWaitMiss; //0x8810 ULONG CcPinReadNoWaitMiss; //0x8814 ULONG CcPinReadWaitMiss; //0x8818 ULONG CcMdlReadNoWaitMiss; //0x881c ULONG CcMdlReadWaitMiss; //0x8820 ULONG CcReadAheadIos; //0x8824 volatile LONG MmCacheTransitionCount; //0x8828 volatile LONG MmCacheReadCount; //0x882c volatile LONG MmCacheIoCount; //0x8830 ULONG PrcbPad91; //0x8834 VOID* MmInternal; //0x8838 struct _PROCESSOR_POWER_STATE PowerState; //0x8840 ULONGLONG PrcbPad96[1]; //0x8a78 VOID* PrcbPad90; //0x8a80 struct _LIST_ENTRY ScbList; //0x8a88 struct _KDPC ForceIdleDpc; //0x8a98 struct _KDPC DpcWatchdogDpc; //0x8ad8 ULONGLONG PrcbPad98[7]; //0x8b18 VOID* VmInternal; //0x8b50 struct _CACHE_DESCRIPTOR Cache[5]; //0x8b58 ULONG CacheCount; //0x8b94 volatile ULONG CachedCommit; //0x8b98 volatile ULONG CachedResidentAvailable; //0x8b9c VOID* WheaInfo; //0x8ba0 VOID* EtwSupport; //0x8ba8 VOID* ExSaPageArray; //0x8bb0 ULONG KeAlignmentFixupCount; //0x8bb8 ULONG PrcbPad95; //0x8bbc union _SLIST_HEADER HypercallPageList; //0x8bc0 ULONGLONG* StatisticsPage; //0x8bd0 ULONGLONG GenerationTarget; //0x8bd8 union _LARGE_INTEGER VirtualApicAssistPage; //0x8be0 ULONGLONG PrcbPad85[3]; //0x8be8 VOID* HypercallCachedPages; //0x8c00 VOID* VirtualApicAssist; //0x8c08 struct _KAFFINITY_EX PackageProcessorSet; //0x8c10 ULONGLONG PrcbPad86[32]; //0x8d18 union { struct { ULONG ProcessorId; //0x8e18 ULONG CoreId; //0x8e1c ULONG ModuleId; //0x8e20 ULONG DieId; //0x8e24 ULONG PackageId; //0x8e28 }; ULONG TopologyId[5]; //0x8e18 }; ULONG NodeRelativeTopologyIndex[5]; //0x8e2c ULONGLONG SharedReadyQueueMask; //0x8e40 struct _KSHARED_READY_QUEUE* SharedReadyQueue; //0x8e48 ULONG SharedQueueScanOwner; //0x8e50 ULONG ScanSiblingIndex; //0x8e54 struct _KCORE_CONTROL_BLOCK* CoreControlBlock; //0x8e58 ULONGLONG CoreProcessorSet; //0x8e60 ULONGLONG ScanSiblingMask; //0x8e68 ULONGLONG LLCMask; //0x8e70 ULONGLONG GroupModuleProcessorSet; //0x8e78 struct _KTHREAD* SmtIsolationThread; //0x8e80 ULONGLONG PrcbPad97[2]; //0x8e88 struct _PROCESSOR_PROFILE_CONTROL_AREA* ProcessorProfileControlArea; //0x8e98 VOID* ProfileEventIndexAddress; //0x8ea0 VOID** DpcWatchdogProfile; //0x8ea8 VOID** DpcWatchdogProfileCurrentEmptyCapture; //0x8eb0 VOID* SchedulerAssist; //0x8eb8 struct _SYNCH_COUNTERS SynchCounters; //0x8ec0 ULONGLONG PrcbPad94; //0x8f78 struct _FILESYSTEM_DISK_COUNTERS FsCounters; //0x8f80 UCHAR VendorString[13]; //0x8f90 UCHAR PrcbPad100[3]; //0x8f9d ULONGLONG FeatureBits; //0x8fa0 union _LARGE_INTEGER UpdateSignature; //0x8fa8 ULONGLONG PteBitCache; //0x8fb0 ULONG PteBitOffset; //0x8fb8 ULONG PrcbPad105; //0x8fbc struct _CONTEXT* Context; //0x8fc0 ULONG ContextFlagsInit; //0x8fc8 ULONG PrcbPad115; //0x8fcc struct _XSAVE_AREA* ExtendedState; //0x8fd0 VOID* IsrStack; //0x8fd8 struct _KENTROPY_TIMING_STATE EntropyTimingState; //0x8fe0 struct { ULONG UpdateCycle; //0x9138 union { SHORT PairLocal; //0x913c struct { UCHAR PairLocalLow; //0x913c UCHAR PairLocalForceStibp:1; //0x913d UCHAR Reserved:4; //0x913d UCHAR Frozen:1; //0x913d UCHAR ForceUntrusted:1; //0x913d UCHAR SynchIpi:1; //0x913d }; }; union { SHORT PairRemote; //0x913e struct { UCHAR PairRemoteLow; //0x913e UCHAR Reserved2; //0x913f }; }; UCHAR Trace[24]; //0x9140 ULONGLONG LocalDomain; //0x9158 ULONGLONG RemoteDomain; //0x9160 struct _KTHREAD* Thread; //0x9168 } StibpPairingTrace; //0x9138 struct _SINGLE_LIST_ENTRY AbSelfIoBoostsList; //0x9170 struct _SINGLE_LIST_ENTRY AbPropagateBoostsList; //0x9178 struct _KDPC AbDpc; //0x9180 struct _SYMCRYPT_ENTROPY_ACCUMULATOR_STATE SymCryptEntropyAccumulatorState; //0x91c0 struct _IOP_IRP_STACK_PROFILER IoIrpStackProfilerCurrent; //0x9340 struct _IOP_IRP_STACK_PROFILER IoIrpStackProfilerPrevious; //0x9394 struct _KSECURE_FAULT_INFORMATION SecureFault; //0x93e8 struct _KSHARED_READY_QUEUE* LocalSharedReadyQueue; //0x9400 struct _KI_COOPERATIVE_IDLE_SEARCH_CONTEXT* LocalSearchContexts[2]; //0x9408 struct _KI_COOPERATIVE_IDLE_SEARCH_CONTEXT* SearchContexts[2]; //0x9418 struct _KI_COOPERATIVE_IDLE_SEARCH_GENERATION* SearchGenerations[2]; //0x9428 ULONGLONG PrcbPad125[1]; //0x9438 ULONG TimerExpirationTraceCount; //0x9440 ULONG PrcbPad127; //0x9444 struct _KTIMER_EXPIRATION_TRACE TimerExpirationTrace[16]; //0x9448 ULONGLONG PrcbPad128[7]; //0x9548 struct _KCLOCK_TIMER_STATE ClockTimerState; //0x9580 struct _KTRAP_FRAME* IpiFrame; //0x9a98 UCHAR PrcbPad129[32]; //0x9aa0 struct _REQUEST_MAILBOX* Mailbox; //0x9ac0 ULONGLONG PrcbPad130[7]; //0x9ac8 struct _MACHINE_CHECK_CONTEXT McheckContext[2]; //0x9b00 ULONGLONG TransitionShadowStack; //0x9ba0 ULONGLONG KernelShadowStackInitial; //0x9ba8 ULONGLONG* IstShadowStacksTable; //0x9bb0 VOID* HiberSwapShadowStacks[5]; //0x9bb8 VOID* HiberSwapShadowStackBases[5]; //0x9be0 VOID* MmFaultCompletionInfo; //0x9c08 ULONGLONG PrcbPad132[6]; //0x9c10 struct _KLOCK_QUEUE_HANDLE SelfmapLockHandle[4]; //0x9c40 ULONGLONG PrcbPad134b[4]; //0x9ca0 struct _KAFFINITY_EX DieProcessorSet; //0x9cc0 ULONGLONG PrcbPad135[32]; //0x9dc8 ULONG CoresPerPhysicalDie; //0x9ec8 ULONG LogicalProcessorsPerModule; //0x9ecc struct _KDPC FreezeForRecoveryDpc; //0x9ed0 struct _KAFFINITY_EX ModuleProcessorSet; //0x9f10 ULONGLONG PrcbPad136[32]; //0xa018 struct _KCORE_CONTROL_BLOCK LocalCoreControlBlock; //0xa118 ULONGLONG PrcbPad137a; //0xa148 struct _KDPC KstackFreeDpc; //0xa150 struct _KDPC SlistRollbackDpc; //0xa190 union _SLIST_HEADER KstackFreeList; //0xa1d0 ULONG IsrStackNesting; //0xa1e0 UCHAR PrcbPad138[3228]; //0xa1e4 ULONGLONG KernelDirectoryTableBase; //0xae80 ULONGLONG RspBaseShadow; //0xae88 ULONGLONG UserRspShadow; //0xae90 ULONG ShadowFlags; //0xae98 ULONG PrcbPad138b; //0xae9c ULONGLONG PrcbPad138c; //0xaea0 USHORT PrcbPad138d; //0xaea8 USHORT VerwSelector; //0xaeaa ULONG DbgMceNestingLevel; //0xaeac ULONG DbgMceFlags; //0xaeb0 ULONG CoreControlBlockIndex; //0xaeb4 struct _KCORE_CONTROL_BLOCK_SHADOW* CoreControlBlockShadow; //0xaeb8 struct _KCORE_CONTROL_BLOCK_SHADOW LocalCoreControlBlockShadow; //0xaec0 struct _KAFFINITY_EX CacheProcessorSet[5]; //0xaf00 ULONGLONG PrcbPad139[160]; //0xb428 ULONGLONG PrcbPad140[171]; //0xb928 ULONGLONG PrcbPad140a[8]; //0xbe80 ULONGLONG PrcbPad141[512]; //0xbec0 struct _REQUEST_MAILBOX RequestMailbox[1]; //0xcec0 };