【问题标题】:Windows kernel equivalent to FreeBSD's ticks or Linux' jiffies in the latest WDKWindows 内核相当于最新 WDK 中的 FreeBSD 的滴答声或 Linux 的 jiffies
【发布时间】:2011-08-23 11:06:37
【问题描述】:

我正在使用最新的 WDK 开发 Windows NDIS 驱动程序,该驱动程序需要一个单调不递减的毫秒分辨率内核时间计数器。我查看了 MSDN 以及 WDK 的文档,但没有发现任何有用的东西,除了一个叫做 TsTime 的东西,我不确定它只是一个示例的虚构名称还是一个实际变量。我知道 NDISGetCurrentSystemTime,但希望有一些开销较低的东西,比如滴答声或 jiffies,除非 NDISGetCurrentSystemTime 本身是低开销的。

似乎应该有一个低开销的全局变量来存储某种内核时间计数器。任何人都知道这可能是什么?

【问题讨论】:

    标签: winapi time counter ndis


    【解决方案1】:

    使用KeQueryTickCount。也许使用一次KeQueryTimeIncrement 可以将滴答计数转换为更有意义的时间单位。

    【讨论】:

      【解决方案2】:

      GetTickCount / GetTickCount64 怎么样(检查后者的要求)

      【讨论】:

      • +1 如果希望它相当精确且开销很小,但不一定具有高分辨率,这是最便宜的计时器。
      • 我的错。我没有意识到 Alex 将文档链接到 GetTickCount。我也疏忽了没有说明我正在使用 WDK 开发 NDIS 驱动程序,因此该功能必须在最新的 WDK 中可用,而 GetTickCount 似乎没有。 Alex 链接的文档似乎是 Win2000。
      • 打到KeQueryTickCount,win2000 note也是最低要求——意思是除非另有说明,所有后续版本都支持
      猜你喜欢
      • 2012-11-19
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      相关资源
      最近更新 更多