struct _KPRCB { unsigned short MinorVersion;/* 0x0 2 */ unsigned short MajorVersion;/* 0x2 2 */ /* 4 bytes padding */ struct _KTHREAD* CurrentThread;/* 0x8 8 */ struct _KTHREAD* NextThread;/* 0x10 8 */ struct _KTHREAD* IdleThread;/* 0x18 8 */ unsigned char Number;/* 0x20 1 */ char WakeIdle;/* 0x21 1 */ unsigned short BuildType;/* 0x22 2 */ /* 4 bytes padding */ unsigned __int64 SetMember;/* 0x28 8 */ struct _RESTART_BLOCK* RestartBlock;/* 0x30 8 */ unsigned __int64 PcrPage;/* 0x38 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ unsigned char PollSlot;/* 0x40 1 */ unsigned char ISTransition;/* 0x41 1 */ unsigned char Spare0[2];/* 0x42 2 */ unsigned long Spare1[3];/* 0x44 12 */ unsigned long ProcessorModel;/* 0x50 4 */ unsigned long ProcessorRevision;/* 0x54 4 */ unsigned long ProcessorFamily;/* 0x58 4 */ unsigned long ProcessorArchRev;/* 0x5c 4 */ unsigned __int64 ProcessorSerialNumber;/* 0x60 8 */ unsigned __int64 ProcessorFeatureBits;/* 0x68 8 */ unsigned char ProcessorVendorString[16];/* 0x70 16 */ /* ── cacheline 2 boundary (128 bytes) ── */ unsigned __int64 SystemReserved[8];/* 0x80 64 */ /* ── cacheline 3 boundary (192 bytes) ── */ unsigned __int64 HalReserved[16];/* 0xc0 128 */ /* ── cacheline 5 boundary (320 bytes) ── */ struct _KPROCESSOR_STATE ProcessorState;/* 0x140 4272 */ /* ── cacheline 71 boundary (4544 bytes) ── */ void* Spare00[2];/* 0x11f0 16 */ /* ── cacheline 72 boundary (4608 bytes) ── */ unsigned long DpcTime;/* 0x1200 4 */ unsigned long InterruptTime;/* 0x1204 4 */ unsigned long KernelTime;/* 0x1208 4 */ unsigned long UserTime;/* 0x120c 4 */ unsigned long InterruptCount;/* 0x1210 4 */ unsigned long DispatchInterruptCount;/* 0x1214 4 */ unsigned long DpcTimeCount;/* 0x1218 4 */ unsigned long DpcTimeLimit;/* 0x121c 4 */ unsigned long NestingLevel;/* 0x1220 4 */ volatile long MmSpinLockOrdering;/* 0x1224 4 */ volatile unsigned long CachedCommit;/* 0x1228 4 */ volatile unsigned long CachedResidentAvailable;/* 0x122c 4 */ long TickOffset;/* 0x1230 4 */ long DpcWatchdogPeriod;/* 0x1234 4 */ long DpcWatchdogCount;/* 0x1238 4 */ long ThreadWatchdogPeriod;/* 0x123c 4 */ /* ── cacheline 73 boundary (4672 bytes) ── */ long ThreadWatchdogCount;/* 0x1240 4 */ unsigned long PageColor;/* 0x1244 4 */ struct _KNODE* ParentNode;/* 0x1248 8 */ unsigned __int64 MultiThreadProcessorSet;/* 0x1250 8 */ volatile unsigned long IpiFrozen;/* 0x1258 4 */ unsigned long NodeColor;/* 0x125c 4 */ unsigned long NodeShiftedColor;/* 0x1260 4 */ unsigned long SecondaryColorMask;/* 0x1264 4 */ long Sleeping;/* 0x1268 4 */ /* 4 bytes padding */ void* HyperPte;/* 0x1270 8 */ void* SparePvoid;/* 0x1278 8 */ /* ── cacheline 74 boundary (4736 bytes) ── */ unsigned long CcFastReadNoWait;/* 0x1280 4 */ unsigned long CcFastReadWait;/* 0x1284 4 */ unsigned long CcFastReadNotPossible;/* 0x1288 4 */ unsigned long CcCopyReadNoWait;/* 0x128c 4 */ unsigned long CcCopyReadWait;/* 0x1290 4 */ unsigned long CcCopyReadNoWaitMiss;/* 0x1294 4 */ unsigned long KeAlignmentFixupCount;/* 0x1298 4 */ unsigned long KeContextSwitches;/* 0x129c 4 */ unsigned long KeExceptionDispatchCount;/* 0x12a0 4 */ unsigned long KeSystemCalls;/* 0x12a4 4 */ unsigned long PrcbPad0[3];/* 0x12a8 12 */ long LookasideIrpFloat;/* 0x12b4 4 */ unsigned long SpareCounter0;/* 0x12b8 4 */ volatile long IoReadOperationCount;/* 0x12bc 4 */ /* ── cacheline 75 boundary (4800 bytes) ── */ volatile long IoWriteOperationCount;/* 0x12c0 4 */ volatile long IoOtherOperationCount;/* 0x12c4 4 */ union _LARGE_INTEGER IoReadTransferCount;/* 0x12c8 8 */ union _LARGE_INTEGER IoWriteTransferCount;/* 0x12d0 8 */ union _LARGE_INTEGER IoOtherTransferCount;/* 0x12d8 8 */ volatile long MmPageFaultCount;/* 0x12e0 4 */ volatile long MmCopyOnWriteCount;/* 0x12e4 4 */ volatile long MmTransitionCount;/* 0x12e8 4 */ volatile long MmCacheTransitionCount;/* 0x12ec 4 */ volatile long MmDemandZeroCount;/* 0x12f0 4 */ volatile long MmPageReadCount;/* 0x12f4 4 */ volatile long MmPageReadIoCount;/* 0x12f8 4 */ volatile long MmCacheReadCount;/* 0x12fc 4 */ /* ── cacheline 76 boundary (4864 bytes) ── */ volatile long MmCacheIoCount;/* 0x1300 4 */ volatile long MmDirtyPagesWriteCount;/* 0x1304 4 */ volatile long MmDirtyWriteIoCount;/* 0x1308 4 */ volatile long MmMappedPagesWriteCount;/* 0x130c 4 */ volatile long MmMappedWriteIoCount;/* 0x1310 4 */ unsigned long CcFastMdlReadNoWait;/* 0x1314 4 */ unsigned long CcFastMdlReadWait;/* 0x1318 4 */ unsigned long CcFastMdlReadNotPossible;/* 0x131c 4 */ unsigned long CcMapDataNoWait;/* 0x1320 4 */ unsigned long CcMapDataWait;/* 0x1324 4 */ unsigned long CcPinMappedDataCount;/* 0x1328 4 */ unsigned long CcPinReadNoWait;/* 0x132c 4 */ unsigned long CcPinReadWait;/* 0x1330 4 */ unsigned long CcMdlReadNoWait;/* 0x1334 4 */ unsigned long CcMdlReadWait;/* 0x1338 4 */ unsigned long CcLazyWriteHotSpots;/* 0x133c 4 */ /* ── cacheline 77 boundary (4928 bytes) ── */ unsigned long CcLazyWriteIos;/* 0x1340 4 */ unsigned long CcLazyWritePages;/* 0x1344 4 */ unsigned long CcDataFlushes;/* 0x1348 4 */ unsigned long CcDataPages;/* 0x134c 4 */ unsigned long CcLostDelayedWrites;/* 0x1350 4 */ unsigned long CcFastReadResourceMiss;/* 0x1354 4 */ unsigned long CcCopyReadWaitMiss;/* 0x1358 4 */ unsigned long CcFastMdlReadResourceMiss;/* 0x135c 4 */ unsigned long CcMapDataNoWaitMiss;/* 0x1360 4 */ unsigned long CcMapDataWaitMiss;/* 0x1364 4 */ unsigned long CcPinReadNoWaitMiss;/* 0x1368 4 */ unsigned long CcPinReadWaitMiss;/* 0x136c 4 */ unsigned long CcMdlReadNoWaitMiss;/* 0x1370 4 */ unsigned long CcMdlReadWaitMiss;/* 0x1374 4 */ unsigned long CcReadAheadIos;/* 0x1378 4 */ unsigned long Spare21[1];/* 0x137c 4 */ /* ── cacheline 78 boundary (4992 bytes) ── */ unsigned __int64 StartCycles;/* 0x1380 8 */ unsigned __int64 CycleTime;/* 0x1388 8 */ unsigned __int64 Spare3[12];/* 0x1390 96 */ /* ── cacheline 79 boundary (5056 bytes) ── */ struct _KSPIN_LOCK_QUEUE LockQueue[49];/* 0x13f0 784 */ /* ── cacheline 92 boundary (5888 bytes) ── */ struct _PP_LOOKASIDE_LIST PPLookasideList[16];/* 0x1700 256 */ /* ── cacheline 96 boundary (6144 bytes) ── */ volatile unsigned __int64 PacketBarrier;/* 0x1800 8 */ unsigned __int64 Spare5[15];/* 0x1808 120 */ /* ── cacheline 98 boundary (6272 bytes) ── */ void* CurrentPacket[3];/* 0x1880 24 */ volatile unsigned __int64 TargetSet;/* 0x1898 8 */ void (*WorkerRoutine)(void*, void*, void*, void*);/* 0x18a0 8 */ unsigned long MHz;/* 0x18a8 4 */ unsigned long Spare6;/* 0x18ac 4 */ unsigned __int64 BranchHistory[9];/* 0x18b0 72 */ /* ── cacheline 99 boundary (6336 bytes) ── */ void* ResourceRateQueue;/* 0x18f8 8 */ /* ── cacheline 100 boundary (6400 bytes) ── */ volatile unsigned long RequestSummary;/* 0x1900 4 */ /* 4 bytes padding */ struct _KPRCB* SignalDone;/* 0x1908 8 */ void (*IpiWorkerRoutine)(void*, void*, void*, void*);/* 0x1910 8 */ void* IpiParameter[3];/* 0x1918 24 */ unsigned __int64 Spare8[10];/* 0x1930 80 */ /* ── cacheline 102 boundary (6528 bytes) ── */ struct _KDPC_DATA DpcData[2];/* 0x1980 64 */ /* ── cacheline 103 boundary (6592 bytes) ── */ void* DpcStack;/* 0x19c0 8 */ long MaximumDpcQueueDepth;/* 0x19c8 4 */ unsigned long DpcRequestRate;/* 0x19cc 4 */ unsigned long MinimumDpcRate;/* 0x19d0 4 */ volatile unsigned char DpcInterruptRequested;/* 0x19d4 1 */ volatile unsigned char DpcThreadRequested;/* 0x19d5 1 */ volatile unsigned char DpcRoutineActive;/* 0x19d6 1 */ volatile unsigned char DpcThreadActive;/* 0x19d7 1 */ unsigned long DpcLastCount;/* 0x19d8 4 */ /* 4 bytes padding */ union { volatile unsigned __int64 TimerHand;/* 0x19e0 8 */ volatile unsigned __int64 TimerRequest;/* 0x19e0 8 */ };/* 0x19e0 8 */ unsigned char ThreadDpcEnable;/* 0x19e8 1 */ volatile unsigned char QuantumEnd;/* 0x19e9 1 */ volatile unsigned char IdleSchedule;/* 0x19ea 1 */ unsigned char Spare9;/* 0x19eb 1 */ long DpcSetEventRequest;/* 0x19ec 4 */ unsigned long AdjustDpcThreshold;/* 0x19f0 4 */ /* 4 bytes padding */ union _LARGE_INTEGER StartCount;/* 0x19f8 8 */ /* ── cacheline 104 boundary (6656 bytes) ── */ struct _KEVENT DpcEvent;/* 0x1a00 24 */ void* PrcbPad5;/* 0x1a18 8 */ struct _KDPC CallDpc;/* 0x1a20 64 */ /* ── cacheline 105 boundary (6720 bytes) ── */ long ClockKeepAlive;/* 0x1a60 4 */ unsigned char ClockCheckSlot;/* 0x1a64 1 */ unsigned char ClockPollCycle;/* 0x1a65 1 */ unsigned char PrcbPad6[2];/* 0x1a66 2 */ unsigned long PeriodicCount;/* 0x1a68 4 */ unsigned long PeriodicBias;/* 0x1a6c 4 */ unsigned __int64 CycleCounterFrequency;/* 0x1a70 8 */ unsigned __int64 Spare11[1];/* 0x1a78 8 */ /* ── cacheline 106 boundary (6784 bytes) ── */ struct _LIST_ENTRY WaitListHead;/* 0x1a80 16 */ unsigned __int64 WaitLock;/* 0x1a90 8 */ unsigned __int64 PrcbLock;/* 0x1a98 8 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead;/* 0x1aa0 8 */ unsigned long ReadySummary;/* 0x1aa8 4 */ unsigned long QueueIndex;/* 0x1aac 4 */ unsigned __int64 Spare13[10];/* 0x1ab0 80 */ /* ── cacheline 108 boundary (6912 bytes) ── */ struct _LIST_ENTRY DispatcherReadyListHead[32];/* 0x1b00 512 */ /* ── cacheline 116 boundary (7424 bytes) ── */ unsigned char SkipTick;/* 0x1d00 1 */ unsigned char DebuggerSavedIRQL;/* 0x1d01 1 */ unsigned short ProcessorId;/* 0x1d02 2 */ /* 4 bytes padding */ struct _PROCESSOR_POWER_STATE PowerState;/* 0x1d08 280 */ /* ── cacheline 120 boundary (7680 bytes) ── */ struct _KDPC DpcWatchdogDpc;/* 0x1e20 64 */ /* ── cacheline 121 boundary (7744 bytes) ── */ struct _KTIMER DpcWatchdogTimer;/* 0x1e60 64 */ /* ── cacheline 122 boundary (7808 bytes) ── */ struct _KDPC ThreadWatchdogDpc;/* 0x1ea0 64 */ /* ── cacheline 123 boundary (7872 bytes) ── */ struct _KTIMER ThreadWatchdogTimer;/* 0x1ee0 64 */ /* ── cacheline 124 boundary (7936 bytes) ── */ struct _CACHE_DESCRIPTOR Cache[5];/* 0x1f20 60 */ /* ── cacheline 125 boundary (8000 bytes) ── */ unsigned long CacheCount;/* 0x1f5c 4 */ unsigned __int64 CacheProcessorMask[5];/* 0x1f60 40 */ /* ── cacheline 126 boundary (8064 bytes) ── */ struct _KPRCB* MultiThreadSetMaster;/* 0x1f88 8 */ struct _PROCESSOR_ADDRESS ProcAddr;/* 0x1f90 10 */ /* 6 bytes padding */ void* WheaInfo;/* 0x1fa0 8 */ void* EtwSupport;/* 0x1fa8 8 */ /* 80 bytes padding */ /* ── cacheline 128 boundary (8192 bytes) ── */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32];/* 0x2000 3072 */ /* ── cacheline 176 boundary (11264 bytes) ── */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32];/* 0x2c00 3072 */ /* ── cacheline 224 boundary (14336 bytes) ── */ union _SLIST_HEADER InterruptObjectPool;/* 0x3800 16 */ void* RateControl;/* 0x3810 8 */ unsigned __int64 PackageProcessorSet;/* 0x3818 8 */ unsigned __int64 CoreProcessorSet;/* 0x3820 8 */ struct _CACHE_FLUSH_PARAMETERS CacheFlushParameters;/* 0x3828 8 */ struct _PROCESSOR_IMPLEMENTATION_INFO ProcessorInfo;/* 0x3830 504 */};size 14976 (0x3a80)192 members9 holes (114 bytes)padding 88234 cachelines
Used in (2)