2011-05-11 20 views
2

我正在使用最新的WDK,需要一個毫秒分辨率的內核時間計數器,是單調不減少的Windows NDIS驅動程序。我查看了MSDN以及WDK的文檔,但發現沒有什麼用處,除了一些名爲TsTime的東西,我不確定這只是一個示例或實際變量的名稱。我知道NDISGetCurrentSystemTime,但是希望有一些開銷較低的東西,例如ticks或jiffies,除非NDISGetCurrentSystemTime本身的開銷很低。Windows核心相當於FreeBSD的ticks或Linux'jiffies在最新的WDK

似乎應該有一個低開銷的全局變量,它存儲某種內核時間計數器。任何人都可以瞭解這可能是什麼?

回答

1

使用KeQueryTickCount。也許一次可以使用KeQueryTimeIncrement將滴答計數轉換爲更有意義的時間單位。

1

如何GetTickCount/GetTickCount64(檢查後者的請求數)

+0

+1這是最好的便宜的定時器,如果一個人想要它合理的精確,很少的開銷,但不一定高分辨率。 – Damon 2011-05-11 18:00:05

+0

我的不好。我沒有意識到Alex將文檔鏈接到GetTickCount。我也沒有注意到我正在使用WDK開發NDIS驅動程序,因此必須在最新的WDK中提供該函數,而GetTickCount似乎不是。 Alex鏈接的文檔似乎是Win2000。 – 2011-05-11 18:36:18

+0

毆打KeQueryTickCount,win2000 note也是最低要求 - 意思是除非另有說明,它在所有後續版本中都支持 – 2011-05-11 18:44:58