x64x86arm64ia64 / ntdllntoskrnl

_KPRCB

← 10.0.18362.1016 17 builds latest →
struct _KPRCB {
unsigned short MinorVersion;/* 0x0 2 */
unsigned short MajorVersion;/* 0x2 2 */
unsigned char LegacyNumber;/* 0x10 1 */
unsigned char NestingLevel;/* 0x11 1 */
unsigned short BuildType;/* 0x12 2 */
char CpuType;/* 0x14 1 */
char CpuID;/* 0x15 1 */
union {
unsigned short CpuStep;/* 0x16 2 */
struct {
unsigned char CpuStepping;/* 0x16 1 */
unsigned char CpuModel;/* 0x17 1 */
};/* 0x16 2 */
};/* 0x16 2 */
/* ── cacheline 12 boundary (768 bytes) ── */
char* PriorityState;/* 0x33c 4 */
/* ── cacheline 13 boundary (832 bytes) ── */
unsigned long CoresPerPhysicalProcessor;/* 0x340 4 */
unsigned long LogicalProcessorsPerCore;/* 0x344 4 */
unsigned long KernelReserved[12];/* 0x348 48 */
unsigned long HalReserved[16];/* 0x378 64 */
/* ── cacheline 14 boundary (896 bytes) ── */
unsigned long CFlushSize;/* 0x3b8 4 */
unsigned char LegacyCoresPerPhysicalProcessor;/* 0x3bc 1 */
unsigned char LegacyLogicalProcessorsPerCore;/* 0x3bd 1 */
unsigned char CpuVendor;/* 0x3be 1 */
unsigned char PrcbPad0[1];/* 0x3bf 1 */
/* ── cacheline 15 boundary (960 bytes) ── */
unsigned long MHz;/* 0x3c0 4 */
unsigned char GroupIndex;/* 0x3c4 1 */
unsigned char Group;/* 0x3c5 1 */
unsigned char PrcbPad05[2];/* 0x3c6 2 */
unsigned long GroupSetMember;/* 0x3c8 4 */
unsigned long Number;/* 0x3cc 4 */
unsigned char ClockOwner;/* 0x3d0 1 */
union {
unsigned char PendingTickFlags;/* 0x3d1 1 */
struct {
unsigned char PendingTick : 1;/* 0x3d1:0 1 */
unsigned char PendingBackupTick : 1;/* 0x3d1:1 1 */
};/* 0x3d1 1 */
};/* 0x3d1 1 */
unsigned char PrcbPad10[70];/* 0x3d2 70 */
/* ── cacheline 16 boundary (1024 bytes) ── */
/* ── cacheline 18 boundary (1152 bytes) ── */
unsigned long InterruptCount;/* 0x4a0 4 */
unsigned long KernelTime;/* 0x4a4 4 */
unsigned long UserTime;/* 0x4a8 4 */
unsigned long DpcTime;/* 0x4ac 4 */
unsigned long DpcTimeCount;/* 0x4b0 4 */
unsigned long InterruptTime;/* 0x4b4 4 */
unsigned long AdjustDpcThreshold;/* 0x4b8 4 */
unsigned long PageColor;/* 0x4bc 4 */
/* ── cacheline 19 boundary (1216 bytes) ── */
unsigned char DebuggerSavedIRQL;/* 0x4c0 1 */
unsigned char NodeColor;/* 0x4c1 1 */
unsigned char DeepSleep;/* 0x4c2 1 */
unsigned char TbFlushListActive;/* 0x4c3 1 */
void* CachedStack;/* 0x4c4 4 */
unsigned long NodeShiftedColor;/* 0x4c8 4 */
unsigned long SecondaryColorMask;/* 0x4cc 4 */
unsigned long DpcTimeLimit;/* 0x4d0 4 */
void* MmInternal;/* 0x4d4 4 */
void* SchedulerAssist;/* 0x4dc 4 */
unsigned long CcFastReadNoWait;/* 0x4e0 4 */
unsigned long CcFastReadWait;/* 0x4e4 4 */
unsigned long CcFastReadNotPossible;/* 0x4e8 4 */
unsigned long CcCopyReadNoWait;/* 0x4ec 4 */
unsigned long CcCopyReadWait;/* 0x4f0 4 */
unsigned long CcCopyReadNoWaitMiss;/* 0x4f4 4 */
volatile long MmSpinLockOrdering;/* 0x4f8 4 */
volatile long IoReadOperationCount;/* 0x4fc 4 */
/* ── cacheline 20 boundary (1280 bytes) ── */
volatile long IoWriteOperationCount;/* 0x500 4 */
volatile long IoOtherOperationCount;/* 0x504 4 */
unsigned long CcFastMdlReadNoWait;/* 0x520 4 */
unsigned long CcFastMdlReadWait;/* 0x524 4 */
unsigned long CcFastMdlReadNotPossible;/* 0x528 4 */
unsigned long CcMapDataNoWait;/* 0x52c 4 */
unsigned long CcMapDataWait;/* 0x530 4 */
unsigned long CcPinMappedDataCount;/* 0x534 4 */
unsigned long CcPinReadNoWait;/* 0x538 4 */
unsigned long CcPinReadWait;/* 0x53c 4 */
/* ── cacheline 21 boundary (1344 bytes) ── */
unsigned long CcMdlReadNoWait;/* 0x540 4 */
unsigned long CcMdlReadWait;/* 0x544 4 */
unsigned long CcLazyWriteHotSpots;/* 0x548 4 */
unsigned long CcLazyWriteIos;/* 0x54c 4 */
unsigned long CcLazyWritePages;/* 0x550 4 */
unsigned long CcDataFlushes;/* 0x554 4 */
unsigned long CcDataPages;/* 0x558 4 */
unsigned long CcLostDelayedWrites;/* 0x55c 4 */
unsigned long CcFastReadResourceMiss;/* 0x560 4 */
unsigned long CcCopyReadWaitMiss;/* 0x564 4 */
unsigned long CcFastMdlReadResourceMiss;/* 0x568 4 */
unsigned long CcMapDataNoWaitMiss;/* 0x56c 4 */
unsigned long CcMapDataWaitMiss;/* 0x570 4 */
unsigned long CcPinReadNoWaitMiss;/* 0x574 4 */
unsigned long CcPinReadWaitMiss;/* 0x578 4 */
unsigned long CcMdlReadNoWaitMiss;/* 0x57c 4 */
/* ── cacheline 22 boundary (1408 bytes) ── */
unsigned long CcMdlReadWaitMiss;/* 0x580 4 */
unsigned long CcReadAheadIos;/* 0x584 4 */
unsigned long KeAlignmentFixupCount;/* 0x588 4 */
unsigned long KeExceptionDispatchCount;/* 0x58c 4 */
unsigned long KeSystemCalls;/* 0x590 4 */
unsigned long AvailableTime;/* 0x594 4 */
unsigned long PrcbPad22[2];/* 0x598 8 */
/* ── cacheline 24 boundary (1536 bytes) ── */
/* ── cacheline 60 boundary (3840 bytes) ── */
/* ── cacheline 96 boundary (6144 bytes) ── */
/* ── cacheline 132 boundary (8448 bytes) ── */
volatile long PacketBarrier;/* 0x2120 4 */
volatile long ReverseStall;/* 0x2124 4 */
void* IpiFrame;/* 0x2128 4 */
unsigned char PrcbPad3[52];/* 0x212c 52 */
/* ── cacheline 133 boundary (8512 bytes) ── */
void* CurrentPacket[3];/* 0x2160 12 */
volatile unsigned long TargetSet;/* 0x216c 4 */
void (*WorkerRoutine)(void*, void*, void*, void*);/* 0x2170 4 */
volatile unsigned long IpiFrozen;/* 0x2174 4 */
unsigned char PrcbPad4[40];/* 0x2178 40 */
/* ── cacheline 134 boundary (8576 bytes) ── */
volatile unsigned long RequestSummary;/* 0x21a0 4 */
volatile long TargetCount;/* 0x21a4 4 */
unsigned __int64 PrcbPad94[1];/* 0x21a8 8 */
unsigned __int64 TrappedSecurityDomain;/* 0x21b0 8 */
union {
unsigned char BpbState;/* 0x21b8 1 */
struct {
unsigned char BpbCpuIdle : 1;/* 0x21b8:0 1 */
unsigned char BpbFlushRsbOnTrap : 1;/* 0x21b8:1 1 */
unsigned char BpbIbpbOnReturn : 1;/* 0x21b8:2 1 */
unsigned char BpbIbpbOnTrap : 1;/* 0x21b8:3 1 */
unsigned char BpbReserved : 4;/* 0x21b8:4 1 */
};/* 0x21b8 1 */
};/* 0x21b8 1 */
union {
unsigned char BpbFeatures;/* 0x21b9 1 */
struct {
unsigned char BpbClearOnIdle : 1;/* 0x21b9:0 1 */
unsigned char BpbEnabled : 1;/* 0x21b9:1 1 */
unsigned char BpbSmep : 1;/* 0x21b9:2 1 */
unsigned char BpbFeaturesReserved : 5;/* 0x21b9:3 1 */
};/* 0x21b9 1 */
};/* 0x21b9 1 */
unsigned char BpbCurrentSpecCtrl;/* 0x21ba 1 */
unsigned char BpbKernelSpecCtrl;/* 0x21bb 1 */
unsigned char BpbNmiSpecCtrl;/* 0x21bc 1 */
unsigned char BpbUserSpecCtrl;/* 0x21bd 1 */
unsigned char PrcbPad49[2];/* 0x21be 2 */
/* ── cacheline 135 boundary (8640 bytes) ── */
unsigned long ProcessorSignature;/* 0x21c0 4 */
unsigned long ProcessorFlags;/* 0x21c4 4 */
unsigned char PrcbPad50[8];/* 0x21c8 8 */
unsigned long InterruptLastCount;/* 0x21d0 4 */
unsigned long InterruptRate;/* 0x21d4 4 */
unsigned long DeviceInterrupts;/* 0x21d8 4 */
void* IsrDpcStats;/* 0x21dc 4 */
/* ── cacheline 136 boundary (8704 bytes) ── */
void* DpcStack;/* 0x2210 4 */
long MaximumDpcQueueDepth;/* 0x2214 4 */
unsigned long DpcRequestRate;/* 0x2218 4 */
unsigned long MinimumDpcRate;/* 0x221c 4 */
unsigned long DpcLastCount;/* 0x2220 4 */
unsigned long PrcbLock;/* 0x2224 4 */
unsigned char IdleState;/* 0x2238 1 */
volatile unsigned char QuantumEnd;/* 0x2239 1 */
volatile unsigned char DpcRoutineActive;/* 0x223a 1 */
volatile unsigned char IdleSchedule;/* 0x223b 1 */
union {
volatile long DpcRequestSummary;/* 0x223c 4 */
short DpcRequestSlot[2];/* 0x223c 4 */
struct {
short NormalDpcState;/* 0x223c 2 */
short ThreadDpcState;/* 0x223e 2 */
};/* 0x223c 4 */
struct {
unsigned long DpcNormalProcessingActive : 1;/* 0x223c:0 4 */
unsigned long DpcNormalProcessingRequested : 1;/* 0x223c:1 4 */
unsigned long DpcNormalThreadSignal : 1;/* 0x223c:2 4 */
unsigned long DpcNormalTimerExpiration : 1;/* 0x223c:3 4 */
unsigned long DpcNormalDpcPresent : 1;/* 0x223c:4 4 */
unsigned long DpcNormalLocalInterrupt : 1;/* 0x223c:5 4 */
unsigned long DpcNormalSpare : 10;/* 0x223c:6 4 */
unsigned long DpcThreadActive : 1;/* 0x223c:16 4 */
unsigned long DpcThreadRequested : 1;/* 0x223c:17 4 */
unsigned long DpcThreadSpare : 14;/* 0x223c:18 4 */
};/* 0x223c 4 */
};/* 0x223c 4 */
/* ── cacheline 137 boundary (8768 bytes) ── */
unsigned long LastTick;/* 0x2240 4 */
unsigned long PeriodicCount;/* 0x2244 4 */
unsigned long PeriodicBias;/* 0x2248 4 */
unsigned long ClockInterrupts;/* 0x224c 4 */
unsigned long ReadyScanTick;/* 0x2250 4 */
unsigned char GroupSchedulingOverQuota;/* 0x2254 1 */
unsigned char ThreadDpcEnable;/* 0x2255 1 */
unsigned char PrcbPad41[6];/* 0x2256 6 */
/* 4 bytes padding */
/* ── cacheline 234 boundary (14976 bytes) ── */
unsigned long PrcbPad92[12];/* 0x3ab0 48 */
/* ── cacheline 235 boundary (15040 bytes) ── */
/* ── cacheline 236 boundary (15104 bytes) ── */
long ClockKeepAlive;/* 0x3b00 4 */
unsigned char PrcbPad6[4];/* 0x3b04 4 */
long DpcWatchdogPeriod;/* 0x3b08 4 */
long DpcWatchdogCount;/* 0x3b0c 4 */
volatile long KeSpinLockOrdering;/* 0x3b10 4 */
unsigned long DpcWatchdogProfileCumulativeDpcThreshold;/* 0x3b14 4 */
unsigned long QueueIndex;/* 0x3b18 4 */
unsigned long ReadySummary;/* 0x3b20 4 */
long AffinitizedSelectionMask;/* 0x3b24 4 */
unsigned long WaitLock;/* 0x3b28 4 */
unsigned long ScbOffset;/* 0x3b34 4 */
unsigned long ReadyThreadCount;/* 0x3b38 4 */
/* 4 bytes padding */
/* ── cacheline 237 boundary (15168 bytes) ── */
unsigned __int64 StartCycles;/* 0x3b40 8 */
unsigned __int64 TaggedCyclesStart;/* 0x3b48 8 */
unsigned __int64 TaggedCycles[3];/* 0x3b50 24 */
volatile unsigned __int64 CycleTime;/* 0x3b68 8 */
unsigned __int64 AffinitizedCycles;/* 0x3b70 8 */
unsigned __int64 ImportantCycles;/* 0x3b78 8 */
/* ── cacheline 238 boundary (15232 bytes) ── */
unsigned __int64 UnimportantCycles;/* 0x3b80 8 */
unsigned __int64 ReadyQueueExpectedRunTime;/* 0x3b88 8 */
volatile unsigned long HighCycleTime;/* 0x3b90 4 */
/* 4 bytes padding */
unsigned __int64 Cycles[4][2];/* 0x3b98 64 */
/* ── cacheline 239 boundary (15296 bytes) ── */
unsigned long PrcbPad71;/* 0x3bd8 4 */
unsigned long DpcWatchdogSequenceNumber;/* 0x3bdc 4 */
/* ── cacheline 243 boundary (15552 bytes) ── */
void* ChainedInterruptList;/* 0x3ce0 4 */
long LookasideIrpFloat;/* 0x3ce4 4 */
volatile long MmPageFaultCount;/* 0x3cf8 4 */
volatile long MmCopyOnWriteCount;/* 0x3cfc 4 */
/* ── cacheline 244 boundary (15616 bytes) ── */
volatile long MmTransitionCount;/* 0x3d00 4 */
volatile long MmCacheTransitionCount;/* 0x3d04 4 */
volatile long MmDemandZeroCount;/* 0x3d08 4 */
volatile long MmPageReadCount;/* 0x3d0c 4 */
volatile long MmPageReadIoCount;/* 0x3d10 4 */
volatile long MmCacheReadCount;/* 0x3d14 4 */
volatile long MmCacheIoCount;/* 0x3d18 4 */
volatile long MmDirtyPagesWriteCount;/* 0x3d1c 4 */
volatile long MmDirtyWriteIoCount;/* 0x3d20 4 */
volatile long MmMappedPagesWriteCount;/* 0x3d24 4 */
volatile long MmMappedWriteIoCount;/* 0x3d28 4 */
volatile unsigned long CachedCommit;/* 0x3d2c 4 */
volatile unsigned long CachedResidentAvailable;/* 0x3d30 4 */
void* HyperPte;/* 0x3d34 4 */
unsigned long LogicalProcessorsPerPhysicalProcessor;/* 0x3d38 4 */
unsigned char VendorString[13];/* 0x3d3c 13 */
/* ── cacheline 245 boundary (15680 bytes) ── */
unsigned char InitialApicId;/* 0x3d49 1 */
unsigned char PrcbPad9[2];/* 0x3d4a 2 */
/* 4 bytes padding */
unsigned __int64 FeatureBits;/* 0x3d50 8 */
volatile unsigned __int64 IsrTime;/* 0x3d60 8 */
unsigned __int64 GenerationTarget;/* 0x3d68 8 */
/* ── cacheline 252 boundary (16128 bytes) ── */
unsigned long PrcbPad91[8];/* 0x3f38 32 */
/* ── cacheline 253 boundary (16192 bytes) ── */
unsigned __int64 CurrentDpcRuntimeHistoryCached;/* 0x3f60 8 */
unsigned __int64 CurrentDpcStartTime;/* 0x3f68 8 */
void (*CurrentDpcRoutine)(struct _KDPC*, void*, void*, void*);/* 0x3f70 4 */
unsigned long DpcWatchdogProfileSingleDpcThreshold;/* 0x3f74 4 */
/* ── cacheline 254 boundary (16256 bytes) ── */
/* ── cacheline 255 boundary (16320 bytes) ── */
void* HypercallCachedPages;/* 0x3fc8 4 */
void* VirtualApicAssist;/* 0x3fcc 4 */
unsigned __int64* StatisticsPage;/* 0x3fd0 4 */
/* ── cacheline 256 boundary (16384 bytes) ── */
unsigned long CacheCount;/* 0x4010 4 */
unsigned long SharedReadyQueueMask;/* 0x4020 4 */
unsigned long SharedQueueScanOwner;/* 0x4028 4 */
unsigned long CoreProcessorSet;/* 0x402c 4 */
unsigned long ScanSiblingMask;/* 0x4030 4 */
unsigned long LLCMask;/* 0x4034 4 */
unsigned long CacheProcessorMask[5];/* 0x4038 20 */
/* ── cacheline 257 boundary (16448 bytes) ── */
unsigned long ScanSiblingIndex;/* 0x404c 4 */
void* WheaInfo;/* 0x4050 4 */
void* EtwSupport;/* 0x4054 4 */
void** DpcWatchdogProfile;/* 0x4060 4 */
void** DpcWatchdogProfileCurrentEmptyCapture;/* 0x4064 4 */
unsigned long PackageId;/* 0x4068 4 */
unsigned long PteBitCache;/* 0x406c 4 */
unsigned long PteBitOffset;/* 0x4070 4 */
unsigned long PrcbPad93;/* 0x4074 4 */
void* ProfileEventIndexAddress;/* 0x407c 4 */
/* ── cacheline 258 boundary (16512 bytes) ── */
/* ── cacheline 261 boundary (16704 bytes) ── */
unsigned long ContextFlagsInit;/* 0x416c 4 */
/* ── cacheline 266 boundary (17024 bytes) ── */
void* IsrStack;/* 0x429c 4 */
/* ── cacheline 279 boundary (17856 bytes) ── */
/* ── cacheline 280 boundary (17920 bytes) ── */
/* ── cacheline 281 boundary (17984 bytes) ── */
/* ── cacheline 282 boundary (18048 bytes) ── */
/* ── cacheline 286 boundary (18304 bytes) ── */
unsigned long TimerExpirationTraceCount;/* 0x47b0 4 */
void* ExSaPageArray;/* 0x47b4 4 */
unsigned long PrcbPad100[9];/* 0x47bc 36 */
/* ── cacheline 287 boundary (18368 bytes) ── */
/* ── cacheline 292 boundary (18688 bytes) ── */
unsigned char PrcbPad[1468];/* 0x4924 1468 */
/* ── cacheline 315 boundary (20160 bytes) ── */
unsigned long KernelDirectoryTableBase;/* 0x4ee0 4 */
unsigned long EspBaseShadow;/* 0x4ee4 4 */
unsigned long UserEspShadow;/* 0x4ee8 4 */
unsigned long ShadowFlags;/* 0x4eec 4 */
unsigned long UserDS;/* 0x4ef0 4 */
unsigned long UserES;/* 0x4ef4 4 */
unsigned long UserFS;/* 0x4ef8 4 */
void* EspIretd;/* 0x4efc 4 */
/* ── cacheline 316 boundary (20224 bytes) ── */
unsigned long RestoreSegOption;/* 0x4f00 4 */
unsigned long SavedEsi;/* 0x4f04 4 */
unsigned long PrcbShadowPad;/* 0x4f08 4 */
unsigned long TaskSwitchCount;/* 0x4f0c 4 */
unsigned long DbgLogs[512];/* 0x4f10 2048 */
/* ── cacheline 348 boundary (22272 bytes) ── */
unsigned long DbgCount;/* 0x5710 4 */
unsigned long PrcbPadRemainingPage[499];/* 0x5714 1996 */
/* ── cacheline 379 boundary (24256 bytes) ── */
};
size 24320 (0x5f00)307 members4 holes (16 bytes)padding 0380 cachelines
Used in (2)