QueryIdleProcessorCycleTime function (realtimeapiset.h)

Retrieves the cycle time for the idle thread of each processor in the system.

On a system with more than 64 processors, this function retrieves the cycle time for the idle thread of each processor in the processor group to which the calling thread is assigned. Use the QueryIdleProcessorCycleTimeEx function to retrieve the cycle time for the idle thread on each logical processor for a specific processor group.

Syntax

BOOL QueryIdleProcessorCycleTime(
  [in, out] PULONG   BufferLength,
  [out]     PULONG64 ProcessorIdleCycleTime
);

Parameters

[in, out] BufferLength

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.

[out] ProcessorIdleCycleTime

The number of CPU clock cycles used by each idle thread. This buffer must be 8 times the number of processors in the system in size.

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, call GetLastError.

Remarks

To compile an application that uses this function, define _WIN32_WINNT as 0x0600 or later.

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header realtimeapiset.h (include Windows.h on Windows 7, Windows Server 2008 Windows Server 2008 R2)
Library Mincore.lib
DLL Kernel32.dll

See also

Processor Groups

QueryIdleProcessorCycleTimeEx

QueryProcessCycleTime

QueryThreadCycleTime