阅读:2445回复:7
大家帮我看看我定的这个计时器的时间间隔是不是100ms? 麻烦大家看两行代码。LARGE_INTEGER DueTime; DueTime = RtlConvertLongToLargeInteger( -10000 * 100 ); //想100ms调一次回调函数 KeSetTimer( &pollingTimer, DueTime, pollingDpc); 我这样对么? 测了一下,好像不是这样,我改成-10000 * 1000 一秒钟触发一次,测试起来也不是这样, 还是不知道DueTime怎么设置,麻烦大家能说一下。 另外,我看到别人这样: DueTime.QuadPart= -1 * 1; 说是1ms种触发一次,那么DueTime.QuadPart= -1 * 100 是不是100ms触发一次呢? 不解ing, 请指教。 |
|
沙发#
发布于:2004-02-18 18:20
单位是100ns,即0.1ms
要100ms的话, DueTime = RtlConvertLongToLargeInteger( -100 * 10 ); |
|
板凳#
发布于:2004-02-18 19:05
多谢arthurtu!
不过我还是不懂为什么是这样, 如果是50ms的话是不是这样: DueTime = RtlConvertLongToLargeInteger( -50 * 10 ) 还是别的什么的,请讲一下怎么设置任意间隔时间。 谢谢!!! |
|
地板#
发布于:2004-02-18 20:55
辣闷,我说说我的想法:
单位是100ns 那么DueTime = RtlConvertLongToLargeInteger( -10000 * 100 );应该是这样算: 10000 * 100 * 100 * e-9 = 0.1s ;// (e-9 表示10的负9次方) 怎么是0.1ms呢? 而arthurtu兄说 要是100ms的话, DueTime = RtlConvertLongToLargeInteger( -100 * 10 ); 以是怎么算的呢? 偶实在是不太明白,请指点。 谢谢!! |
|
地下室#
发布于:2004-02-19 09:11
DRTSC
|
|
|
5楼#
发布于:2004-02-19 10:32
wowocock兄:
DRTSC又是什么意思? |
|
6楼#
发布于:2004-02-19 10:54
Faint!!!
怎么在这种阴沟里翻船啊?:D:D:D 75 * 1000 * 1000 * 10 ;// 75秒 或者: (75 * 1000 * 1000 * 1000) / 100 ;// 75秒 [编辑 - 2/19/04 by slwqw] [编辑 - 2/19/04 by slwqw] |
|
7楼#
发布于:2004-02-19 14:02
我经常搞胡涂,搞不清楚怎么叫 :D
是毫秒(ms,millisecond,e-3),微秒(us?microsecond,e-6),毫微秒(ns,nanosecond毫微秒(时间单位等于1秒的10亿分之一))什么的吧,刚刚查了下金山糍粑 :D :D [编辑 - 2/19/04 by arthurtu] |
|