2011-05-11 4 views
2

나는 단조롭게 감소하지 않는 밀리 초 단위의 커널 시간 카운터를 필요로하는 최신 WDK를 사용하여 Windows NDIS 드라이버에서 작업하고 있습니다. MSDN과 WDK의 문서를 살펴 보았지만 TsTime이라 불리는 것을 제외하고는 아무 유용한 것도 발견하지 못했습니다. TsTime은 실제로 예제 나 실제 변수 중 어느 것이 작성된 이름인지 확실하지 않습니다. 나는 NDISGetCurrentSystemTime을 알고 있지만, NDISGetCurrentSystemTime 자체가 낮은 오버 헤드가 아닌 한 틱이나 jiffies와 같은 오버 헤드가 더 낮은 것을 가지고 싶습니다.FreeBSD의 틱 또는 최신 WDK의 Linux 'jiffies와 동일한 Windows 커널

일종의 커널 시간 카운터를 저장하는 오버 헤드가 낮은 전역 변수가 있어야합니다. 누구든지 이것이 무엇인지에 대한 통찰력을 가지고 있습니까?

답변

1

사용 KeQueryTickCount. 그리고 틱 수를보다 의미있는 시간 단위로 변환하려면 KeQueryTimeIncrement을 한 번 사용하십시오.

1

방법에 대한 GetTickCount/GetTickCount64 (후자에 REQS 확인)

+0

+1 약간의 오버 헤드로도 합리적으로 정밀하지만 고해상도에서는 꼭 필요한 것은 아닙니다. – Damon

+0

내 잘못입니다. 나는 Alex가 GetTickCount에 문서를 링크했다는 것을 깨닫지 못했습니다. 또한 NDIS 드라이버를 개발하기 위해 WDK를 사용하고 있다는 사실을 밝히지 않았으므로 GetTickCount가 나타나지 않는 최신 WDK에서 기능을 사용할 수 있어야합니다. Alex 연결 문서는 Win2000 인 것으로 보입니다. –

+0

KeQueryTickCount에 맞고, 또한 win2000 노트는 최소한의 요구 사항입니다. 다른 언급이 없으면 모든 후속 버전에서 지원됩니다. –