阅读:5580回复:20
请教KeSetTimer的用法
我在驱动程序中需要定时处理一些事务,于是我用KeSetTimer建立了一个定时器对象,但它从来没有触发过。这是怎么回事呢?
|
|
|
沙发#
发布于:2002-07-14 22:13
to xdjm:
我只成功过了一次,以后再怎么改都不行了:( |
|
|
板凳#
发布于:2002-07-13 13:49
xdjm:
管用不过还是不能达到我的要求,我把时间改为100个单位,但只达到毫秒级的时间间隔 |
|
|
地板#
发布于:2002-07-13 09:25
可是我的程序中它只能最小延时10个毫秒! 完全正确,分辨率取决于系统时钟的精度,一般为10毫秒或者15毫秒,取决于具体的系统,不要相信什么100纳秒的谎言(它只是一个单位而已)。你可以调用Win32函数GetSystemTimeAdjustment得到系统时钟的间隔,还有SetSystemTimeAdjustment设置间隔,不过SetSystemTimeAdjustment我不知道是不是真的管用,你可以试试,有结果了告诉偶一声。 :) |
|
地下室#
发布于:2002-07-12 18:54
可是我的程序中它只能最小延时10个毫秒!
也就是说一秒中最多只计数100次左右 |
|
|
5楼#
发布于:2002-07-12 18:18
100纳秒。
|
|
|
6楼#
发布于:2002-07-12 17:13
最小延时可以达到多少微秒?
|
|
|
7楼#
发布于:2002-07-12 16:59
请问KeSetTimer的精度是多少?
|
|
|
8楼#
发布于:2002-07-12 16:51
成了!谢谢老虎!
|
|
|
9楼#
发布于:2002-07-12 12:53
DDK里到处是。搜索一下里面的源代码,那才是驱动宝库啊!
|
|
|
10楼#
发布于:2002-07-12 12:51
谢谢可我还不能肯定是TIMER引起的反应呢,能给我一个例子吗?
|
|
|
11楼#
发布于:2002-07-12 12:48
现在有反应了,分页错!重启! 有反应就成功一半了!恭喜恭喜! :D :D :D |
|
|
12楼#
发布于:2002-07-12 12:38
现在有反应了,分页错!重启!
|
|
|
13楼#
发布于:2002-07-12 12:35
放到DeviceExtension中算是在非分页内存中吧? 是,还不行?! |
|
|
14楼#
发布于:2002-07-12 12:08
放到DeviceExtension中算是在非分页内存中吧?
|
|
|
15楼#
发布于:2002-07-12 11:31
是不是就是说如果CountProc是回调例程的话不能有这条语句存在:
#pragma alloc_text (PAGE,CountProc) |
|
|
16楼#
发布于:2002-07-12 10:58
1、TimeoutTimer必须在非分页内存。
2、正确初始化TimeoutTimer和TimeoutDPC。 还不行的话,是不可能的!!!! |
|
|
17楼#
发布于:2002-07-12 10:39
不会吧,我每次都行的~~~
|
|
18楼#
发布于:2002-07-12 10:07
我就是设的负值,但它一次都不触发!我在DPC例程中下了断点,它一次都没被激活过:(
谁能救我啊! |
|
|
19楼#
发布于:2002-07-12 09:56
注意时间设置,正表示从距1601年以来的100纳秒次数达到时触发,而负数才是从你设置时系统经过多少个纳秒触发。
dueTime.QuadPart = -10000 * 1;//为负,1毫秒后触发 inQueue = KeSetTimer(TimeoutTimer, dueTime, TimeoutDpc); [编辑 - 7/12/02 by tigerzd] |
|
|
上一页
下一页