在窗口中,什么是辅助性能计数器?

问题描述 投票:0回答:1

ConvertAuxiliaryCounterToPerformanceCounter

ConvertPerformanceCounterToAuxiliaryCounter
(全部定义为
realtimeapiset.h
)。并且,在内核模式(对于驱动器开发人员)中,有相应的API
KeQueryAuxiliaryCounterFrequency
KeConvertAuxiliaryCounterToPerformanceCounter
KeConvertPerformanceCounterToAuxiliaryCounter

但是,什么是辅助计数器?为什么要使用一个?您如何实际阅读辅助计数器的价值?该文档没有回答任何这些问题。

但是,什么是辅助柜台?

您可以按频率确定辅助计数器,而24000000是HPET硬件计时器:

winapi performancecounter
1个回答
0
投票
:10000000(10 MHz)

QueryAuxiliaryCounterFquency
:24000000(24 MHz)

你为什么要使用一个? 有一些用例,但通常会通过网络上的多台机器的事件和时间戳记或确定系统上其他计时器的可靠性或准确性相关联。

您如何实际读取辅助计数器的值? API旨在将QPC值转换为等效AUX计数器:

LARGE_INTEGER performanceCounterValue; ULONG64 auxiliaryCounterValue; ULONG64 auxiliaryConversionError; QueryPerformanceCounter(&performanceCounterValue); ConvertPerformanceCounterToAuxiliaryCounter( performanceCounterValue.QuadPart, &auxiliaryCounterValue, &auxiliaryConversionError ); printf("%llu +/- %llu", auxiliaryCounterValue, auxiliaryConversionError);

对于QPC值范围为10秒的QPC值,该函数将失败。
将QPC转换为Aux,并使用

ConvertPerformancecountToAuxiliaryCountercounter

另一方将AUX转换回QPC,并将AUX转换回QPC,

ConvertAuxiliaryCounterToperFormanCecountancountr

,您具有AUX TIMESTAMP的高精度相关性的AUX TIMESTam文档:
Https://learn.microsoft.com/en-us/windows/win32/sysinfo/acquiring-high-resolution-resolution time-stamps#resolution-resolution-precision-precision-accuracy-accuracy-and-senation-

使用两台不同的计算机来考虑相同的24小时时间间隔。两台计算机的振荡器具有最大频率偏移±50 ppm。这两个系统的同一时间间隔的测量可以相距多远?与前面的示例一样,±50 ppm在24小时后产生的最大误差为±4.3秒。如果一个系统快速运行4.3秒,而其他4.3秒慢,则24小时后的最大错误可能为8.6秒。
秒,一天=86400
freFeCency Offset错误=±50 ppm =±0.00005

±(86,400秒 * 0.00005)=±4.3秒 两个系统之间的最大偏移= 8.6秒

总而言之,在测量长时间间隔和比较不同系统之间的测量时,频率偏移误差变得越来越重要。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.