Skip to main content
QueryIdleProcessorCycleTimeEx function

Retrieves the accumulated cycle time for the idle thread on each logical processor in the specified processor group.


BOOL QueryIdleProcessorCycleTimeEx(
  _In_    USHORT   Group,
  _Inout_ PULONG   BufferLength,
  _Out_   PULONG64 ProcessorIdleCycleTime


Group [in]

The number of the processor group for which to retrieve the cycle time.

BufferLength [in, out]

On input, specifies the size of the ProcessorIdleCycleTime buffer, in bytes. This buffer is expected to be 8 times the number of processors in the group.

On output, specifies the number of elements written to the buffer. If the buffer size is not sufficient, the function fails and this parameter receives the required length of the buffer.

ProcessorIdleCycleTime [out]

The number of CPU clock cycles used by each idle thread. If this parameter is NULL, the function updates the BufferLength parameter with the required length.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, use GetLastError.


To compile an application that uses this function, set _WIN32_WINNT >= 0x0601. For more information, see Using the Windows Headers.


Minimum supported client

Windows 7 [desktop apps only]

Minimum supported server

Windows Server 2008 R2 [desktop apps only]


WinBase.h on Windows 7 and Windows Server 2008 R2 (include Windows.h);
Realtimeapiset.h on Windows 8 and Windows Server 2012





See also

Processor Groups