4.3时间和定时器

获得时间的"滴答"数,在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

你可能感兴趣的:(4.3时间和定时器)