获得时间的"滴答"数,在win32应用程序开发中可以使用 GetTickCount 函数来获得系统自启动之后所经历的毫秒数,在驱动开发中则使用 KeQueryTickCount.这个函数返回到 CurrentCount 的不是一个毫秒数,而是一个"滴答"数,一个滴答到底是多长时间必须结合另一个函数 KeQueryTimeIncrement 这个函数获得一个滴答的时间 100纳秒 数.
VOID KeQueryTickCount (
_Out_ PLARGE_INTEGER CurrentCount //滴答个数
);
ULONG KeQueryTimeIncrement ( //1个滴答所需要的时间,单位 100纳秒(精度)
VOID
);
所以:
//获得电脑启动之后的毫秒数
ULONG msec ;//返回毫秒数返回到这里
LARGE_INTEGER tickcount;//返回的滴答个数结构体
ULONG myinc = KeQueryTimeIncrement();//1个滴答所需要的时间,单位 100纳秒(精度)
KeQueryTickCount(&tickcount);//获得滴答个数
tickcount.QuadPart *= myinc;//滴答个数*每个滴答的多少 百纳秒(微妙)数,得到精度为0.1微妙,除以10000等于1毫秒
tickcount.QuadPart /= 10000;
msec = tickcount.LowPart;
DbgPrint("misaka: conputer open time is haomiao number : %u\r\n", msec);
输出结果:
misaka: conputer open time is haomiao number : 88873