阅读:1791回复:4
关于KeDelayExecutionThread()的延时,没感觉?
// 线程延时xxxms
VOID ThreadDelayMs( IN ULONG nDelayMs ) { LARGE_INTEGER DelayTime; DelayTime.QuadPart = -10 * 1000 * nDelayMs; // 10*1000 = 1ms KeDelayExecutionThread( KernelMode, FALSE, &DelayTime ); KdPrint(( \"Delay Time: %dMs.\\n\",nDelayMs )); } 我调用时,不管nDelayMs为何值,均是呼啸而过.?? |
|
沙发#
发布于:2003-06-04 16:06
我用过好象有用的
|
|
|
板凳#
发布于:2003-06-04 16:11
你的LARGE_INTEGER DelayTime好象应该是
DelayTime.HighPart = 0; DelayTime.LowPart =-10 * 1000 * nDelayMs; // this sets the initial timer |
|
地板#
发布于:2003-06-04 18:23
应该是: DelayTime.HighPart = -1吧.这样是可以延时的,估计是DDK编译64位整数时有问题. ok!.谢谢. |
|
地下室#
发布于:2003-06-05 09:38
用
LARGE_INTEGER RtlConvertLongToLargeInteger( IN LONG SignedInteger ); 转换比较方便。 |
|
|