阅读:1918回复:10
有关两个函数的使用
想用KeQueryPerformanceCounter和KeQuerySystemTime这两个函数来控制延时,但就是看不懂该怎么用,人笨真的是没办法.有没有人用过帮忙讲一下吧,这就先谢过了!
|
|
沙发#
发布于:2004-08-01 08:28
这两个函数能控制延时吗?你好实现什么样的延时,这两个是获取系统时间的
KeQueryPerformanceCounter provides the finest grained running count available in the system. LARGE_INTEGER KeQueryPerformanceCounter( OUT PLARGE_INTEGER PerformanceFrequency OPTIONAL ); KeQuerySystemTime obtains the current system time. VOID KeQuerySystemTime( OUT PLARGE_INTEGER CurrentTime ); |
|
|
板凳#
发布于:2004-08-01 10:35
我希望驱动程序能够循环中查询外部状态和时间,条件满足则执行,希望在两次查询间隔运行一个延时函数,查询状态的时间能比较精确的控制.有一个网友建议用这两个函数进行精确控制,你觉得呢?谢谢!
|
|
地板#
发布于:2004-08-01 16:13
在DDK的SRC目录里搜“KeQueryPerformanceCounter”和“KeQuerySystemTime”。例子一大堆。 :D
|
|
地下室#
发布于:2004-08-02 08:56
RDTSC
|
|
|
5楼#
发布于:2004-08-02 15:18
void Delay(ULONG xMs) { LARGE_INTEGER llStart ; LARGE_INTEGER llEnd ; LARGE_INTEGER llFreq ; KeQueryPerformanceCounter(&llFreq ) ; llFreq.QuadPart = llFreq.QuadPart*xMs/1000 ; KeQuerySystemTime(&llStart) ; do KeQuerySystemTime(&llEnd) ; while((llEnd.QuadPart-llStart.QuadPart)<llFreq.QuadPart) ; } 上次哪个随手写的,没有测试,不好意思给添麻烦了。 ________________________________________________________ 回答的好请给分 |
|
|
6楼#
发布于:2004-08-04 21:08
多谢AllenZh的大力帮助!非常感谢!
|
|
7楼#
发布于:2004-08-06 12:42
不用太客气了
|
|
|
8楼#
发布于:2004-08-06 13:49
不用太客气了 什么时候也帮我下,为什么我在MIRROR获得图象的图标其他的都可以,就是灰色的变成了黑色,要用鼠标在上面扫一下才显示出来?? 会是哪里的问题??? |
|
|
9楼#
发布于:2004-08-10 15:46
AllenZh你好!真不好意思!又要麻烦你了,不怕你笑话,笨到极点的我到现在还是不太清楚如何用那两个函数精确控制时间,现在主要存在下面的问题:
1)KeQueryPerformanceCounter(&llFreq ) 这个函数的参数控制的是每个'ticks'所占用的时间,返回的是'ticks'的个数,但调用这个函数时返回的'ticks'的个数是多少呢? 2)llFreq.QuadPart = llFreq.QuadPart*xMs/1000这行代码有什么用处? 3)KeQuerySystemTime()这个函数的参数跟系统时间有什么关系?如何利用参数控制时间? 真不好意思!给你添麻烦了!非常感谢! |
|
10楼#
发布于:2004-10-28 20:37
是啊,给你添麻烦了!非常感谢!
|
|