KeConvertPerformanceCounterToAuxiliaryCounter function (wdm.h)

The KeConvertPerformanceCounterToAuxiliaryCounter routine converts the specified performance counter value into an auxiliary counter value.

Syntax

NTSTATUS KeConvertPerformanceCounterToAuxiliaryCounter(
  [in]            ULONG64  PerformanceCounterValue,
  [out]           PULONG64 AuxiliaryCounterValue,
  [out, optional] PULONG64 ConversionError
);

Parameters

[in] PerformanceCounterValue

The performance counter value to convert.

[out] AuxiliaryCounterValue

A pointer to the variable that contains the converted auxiliary counter value.

[out, optional] ConversionError

A pointer to a variable that contains the estimated conversion error in units of nanosecond.

Return value

KeConvertPerformanceCounterToAuxiliaryCounter can return one of the following:

Return code Description
STATUS_SUCCESS
The conversion succeeded.
STATUS_NOT_SUPPORTED
Auxiliary counter is not supported.
STATUS_INVALID_PARAMETER
The PerformanceCounterValue value is not valid. For example, the value is earlier than the last system boot/recovery, or is out of the +/- 10s range compared to the current performance counter value.
STATUS_UNSUCCESSFUL
The routine cannot convert the specified value with acceptable accuracy.

Remarks

Make sure that the specified performance counter value is:

  • Within +/- 10s compared to the current performance counter read value.
  • Not earlier than the recorded performance counter value at the last system boot or recovery from S3/S4 state.
The ConversionError value is the difference, in nanoseconds, between the expected calculated value and the actual calculated value for the auxiliary counter. If the ConversionError value is greater than the expected value (determined by you), then call the routine again.

Requirements

Requirement Value
Minimum supported client Available starting with Windows 10.
Target Platform Universal
Header wdm.h
Library Ntoskrnl.lib
DLL Hal.dll
IRQL Any level

See also

KeConvertAuxiliaryCounterToPerformanceCounter