SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION

An array of SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION structures, one per processor, is produced in the output buffer by a successful call to the following functions:

when given the information class SystemProcessorPerformanceInformation (0x08).

Documentation Status

The SYSTEM_PROCESSOR_PERFRMANCE_INFORMATION structure is defined in WINTERNL.H from the Software Development Kit (SDK). The definition there provides only some of the members: IdleTime, KernelTime and UserTime.

Microsoft does publish the practical equivalent of a C-language definition as type information in public symbol files, though not for the kernel, where the structure is prepared, nor even for low-level user-mode DLLs that interpret the structure, but for various higher-level user-mode DLLs such as URLMON.DLL and only then starting with version 6.2.

Two earlier disclosures of type information are known, though not in symbol files but in statically linked libraries: GDISRVL.LIB from the Device Driver Kit (DDK) for Windows NT 3.51; and SHELL32.LIB from the DDK for Windows NT 4.0.

Layout

The SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION is 0x30 bytes in both 32-bit and 64-bit Windows.

Offset Definition
0x00
LARGE_INTEGER IdleTime;
0x08
LARGE_INTEGER KernelTime;
0x10
LARGE_INTEGER UserTime;
0x18
LARGE_INTEGER DpcTime;
0x20
LARGE_INTEGER InterruptTime;
0x28
ULONG InterruptCount;