typedef struct _KPRCB { unsigned long MxCsr; unsigned char LegacyNumber; unsigned char ReservedMustBeZero; unsigned char InterruptRequest; unsigned char IdleHalt; KTHREAD *CurrentThread; KTHREAD *NextThread; KTHREAD *IdleThread; unsigned char NestingLevel; unsigned char PrcbPad00[3]; unsigned long Number; unsigned __int64 RspBase; unsigned __int64 PrcbLock; unsigned __int64 PrcbPad01; KPROCESSOR_STATE ProcessorState; char CpuType; char CpuID; union { unsigned short CpuStep; struct { unsigned char CpuStepping; unsigned char CpuModel; }; }; unsigned long MHz; unsigned __int64 HalReserved[8]; unsigned short MinorVersion; unsigned short MajorVersion; unsigned char BuildType; unsigned char CpuVendor; unsigned char CoresPerPhysicalProcessor; unsigned char LogicalProcessorsPerCore; unsigned long ApicMask; unsigned long CFlushSize; void *AcpiReserved; unsigned long InitialApicId; unsigned long Stride; unsigned short Group; unsigned __int64 GroupSetMember; unsigned char GroupIndex; KSPIN_LOCK_QUEUE LockQueue[17]; PP_LOOKASIDE_LIST PPLookasideList[16]; GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; volatile long PacketBarrier; SINGLE_LIST_ENTRY DeferredReadyListHead; volatile long MmPageFaultCount; volatile long MmCopyOnWriteCount; volatile long MmTransitionCount; volatile long MmDemandZeroCount; volatile long MmPageReadCount; volatile long MmPageReadIoCount; volatile long MmDirtyPagesWriteCount; volatile long MmDirtyWriteIoCount; volatile long MmMappedPagesWriteCount; volatile long MmMappedWriteIoCount; unsigned long KeSystemCalls; unsigned long KeContextSwitches; unsigned long CcFastReadNoWait; unsigned long CcFastReadWait; unsigned long CcFastReadNotPossible; unsigned long CcCopyReadNoWait; unsigned long CcCopyReadWait; unsigned long CcCopyReadNoWaitMiss; long LookasideIrpFloat; volatile long IoReadOperationCount; volatile long IoWriteOperationCount; volatile long IoOtherOperationCount; LARGE_INTEGER IoReadTransferCount; LARGE_INTEGER IoWriteTransferCount; LARGE_INTEGER IoOtherTransferCount; volatile long TargetCount; volatile unsigned long IpiFrozen; KDPC_DATA DpcData[2]; void *DpcStack; long MaximumDpcQueueDepth; unsigned long DpcRequestRate; unsigned long MinimumDpcRate; unsigned long DpcLastCount; unsigned char ThreadDpcEnable; volatile unsigned char QuantumEnd; volatile unsigned char DpcRoutineActive; volatile unsigned char IdleSchedule; union { volatile long DpcRequestSummary; short DpcRequestSlot[2]; struct { short NormalDpcState; union { volatile unsigned short DpcThreadActive : 1; short ThreadDpcState; }; }; }; volatile unsigned long TimerHand; long MasterOffset; unsigned long LastTick; unsigned long UnusedPad; unsigned __int64 PrcbPad50[2]; KTIMER_TABLE TimerTable; KGATE DpcGate; void *PrcbPad52; KDPC CallDpc; long ClockKeepAlive; unsigned char ClockCheckSlot; unsigned char ClockPollCycle; unsigned short NmiActive; long DpcWatchdogPeriod; long DpcWatchdogCount; unsigned __int64 TickOffset; volatile long KeSpinLockOrdering; unsigned long PrcbPad70; LIST_ENTRY WaitListHead; unsigned __int64 WaitLock; unsigned long ReadySummary; unsigned long QueueIndex; KDPC TimerExpirationDpc; unsigned __int64 PrcbPad72[4]; LIST_ENTRY DispatcherReadyListHead[32]; unsigned long InterruptCount; unsigned long KernelTime; unsigned long UserTime; unsigned long DpcTime; unsigned long InterruptTime; unsigned long AdjustDpcThreshold; unsigned char DebuggerSavedIRQL; unsigned char PrcbPad80[7]; unsigned long DpcTimeCount; unsigned long DpcTimeLimit; unsigned long PeriodicCount; unsigned long PeriodicBias; unsigned long AvailableTime; unsigned long KeExceptionDispatchCount; KNODE *ParentNode; unsigned __int64 StartCycles; unsigned __int64 PrcbPad82[3]; volatile long MmSpinLockOrdering; unsigned long PageColor; unsigned long NodeColor; unsigned long NodeShiftedColor; unsigned long SecondaryColorMask; unsigned long PrcbPad83; unsigned __int64 CycleTime; unsigned long CcFastMdlReadNoWait; unsigned long CcFastMdlReadWait; unsigned long CcFastMdlReadNotPossible; unsigned long CcMapDataNoWait; unsigned long CcMapDataWait; unsigned long CcPinMappedDataCount; unsigned long CcPinReadNoWait; unsigned long CcPinReadWait; unsigned long CcMdlReadNoWait; unsigned long CcMdlReadWait; unsigned long CcLazyWriteHotSpots; unsigned long CcLazyWriteIos; unsigned long CcLazyWritePages; unsigned long CcDataFlushes; unsigned long CcDataPages; unsigned long CcLostDelayedWrites; unsigned long CcFastReadResourceMiss; unsigned long CcCopyReadWaitMiss; unsigned long CcFastMdlReadResourceMiss; unsigned long CcMapDataNoWaitMiss; unsigned long CcMapDataWaitMiss; unsigned long CcPinReadNoWaitMiss; unsigned long CcPinReadWaitMiss; unsigned long CcMdlReadNoWaitMiss; unsigned long CcMdlReadWaitMiss; unsigned long CcReadAheadIos; volatile long MmCacheTransitionCount; volatile long MmCacheReadCount; volatile long MmCacheIoCount; unsigned long PrcbPad91[1]; unsigned __int64 RuntimeAccumulation; PROCESSOR_POWER_STATE PowerState; unsigned char PrcbPad92[16]; unsigned long KeAlignmentFixupCount; KDPC DpcWatchdogDpc; KTIMER DpcWatchdogTimer; CACHE_DESCRIPTOR Cache[5]; unsigned long CacheCount; volatile unsigned long CachedCommit; volatile unsigned long CachedResidentAvailable; void *HyperPte; void *WheaInfo; void *EtwSupport; SLIST_HEADER InterruptObjectPool; SLIST_HEADER HypercallPageList; void *HypercallPageVirtual; void *VirtualApicAssist; unsigned __int64 *StatisticsPage; void *RateControl; unsigned __int64 CacheProcessorMask[5]; KAFFINITY_EX PackageProcessorSet; unsigned __int64 CoreProcessorSet; void *PebsIndexAddress; unsigned __int64 PrcbPad93[12]; unsigned long SpinLockAcquireCount; unsigned long SpinLockContentionCount; unsigned long SpinLockSpinCount; unsigned long IpiSendRequestBroadcastCount; unsigned long IpiSendRequestRoutineCount; unsigned long IpiSendSoftwareInterruptCount; unsigned long ExInitializeResourceCount; unsigned long ExReInitializeResourceCount; unsigned long ExDeleteResourceCount; unsigned long ExecutiveResourceAcquiresCount; unsigned long ExecutiveResourceContentionsCount; unsigned long ExecutiveResourceReleaseExclusiveCount; unsigned long ExecutiveResourceReleaseSharedCount; unsigned long ExecutiveResourceConvertsCount; unsigned long ExAcqResExclusiveAttempts; unsigned long ExAcqResExclusiveAcquiresExclusive; unsigned long ExAcqResExclusiveAcquiresExclusiveRecursive; unsigned long ExAcqResExclusiveWaits; unsigned long ExAcqResExclusiveNotAcquires; unsigned long ExAcqResSharedAttempts; unsigned long ExAcqResSharedAcquiresExclusive; unsigned long ExAcqResSharedAcquiresShared; unsigned long ExAcqResSharedAcquiresSharedRecursive; unsigned long ExAcqResSharedWaits; unsigned long ExAcqResSharedNotAcquires; unsigned long ExAcqResSharedStarveExclusiveAttempts; unsigned long ExAcqResSharedStarveExclusiveAcquiresExclusive; unsigned long ExAcqResSharedStarveExclusiveAcquiresShared; unsigned long ExAcqResSharedStarveExclusiveAcquiresSharedRecursive; unsigned long ExAcqResSharedStarveExclusiveWaits; unsigned long ExAcqResSharedStarveExclusiveNotAcquires; unsigned long ExAcqResSharedWaitForExclusiveAttempts; unsigned long ExAcqResSharedWaitForExclusiveAcquiresExclusive; unsigned long ExAcqResSharedWaitForExclusiveAcquiresShared; unsigned long ExAcqResSharedWaitForExclusiveAcquiresSharedRecursive; unsigned long ExAcqResSharedWaitForExclusiveWaits; unsigned long ExAcqResSharedWaitForExclusiveNotAcquires; unsigned long ExSetResOwnerPointerExclusive; unsigned long ExSetResOwnerPointerSharedNew; unsigned long ExSetResOwnerPointerSharedOld; unsigned long ExTryToAcqExclusiveAttempts; unsigned long ExTryToAcqExclusiveAcquires; unsigned long ExBoostExclusiveOwner; unsigned long ExBoostSharedOwners; unsigned long ExEtwSynchTrackingNotificationsCount; unsigned long ExEtwSynchTrackingNotificationsAccountedCount; unsigned char VendorString[13]; unsigned char PrcbPad10[3]; unsigned long FeatureBits; LARGE_INTEGER UpdateSignature; CONTEXT *Context; unsigned long ContextFlags; XSAVE_AREA *ExtendedState; REQUEST_MAILBOX *Mailbox; REQUEST_MAILBOX RequestMailbox[1]; } KPRCB, *PKPRCB;