阅读:1122回复:3
定时器问题
我在DeviceControl中初始化一个定时器
PKTIMER pKTimer = NULL; ... case IOCTL_INIT_TIMER: KeInitializeTimerEx(pKTimer, SynchronizationTimer); KeInitializeDpc(pKTimer->Dpc, TimerProcFunction, NULL); DueTime.QuadPart = -10000 * 2; //2ms 时间间隔 inQueue = KeSetTimer(pKTimer, DueTime, pKTimer->Dpc); ... VOID TimerProcFunction(PKDPC dpc, PVOID context, PVOID junk1, PVOID junk2) { DbgPrint(\"Timer Worked!\"); } 我一启动,win98就死机。代码是在论坛中搬来的,请高手指教。 |
|
沙发#
发布于:2002-03-01 16:32
函数KeInitializeTimerEx(pKTimer, SynchronizationTimer)不会为KTIMER分配空间,pKTimer应自己分配内存,应定义一个KTIMER kTimer, 然后传入地址
|
|
|
板凳#
发布于:2002-03-01 16:49
谢谢!
现在已经不死机了。 但TimerProcFunction好像只执行了一次。 再帮忙看看吧。 [编辑 - 3/1/02 作者: Hideman] |
|
地板#
发布于:2002-03-01 17:11
使用KeSetTimerEx函数,其中有一个参数Period, 可周期性地触发定时器
|
|
|