阅读:1377回复:4
各位高手再帮我看看这个定时器问题(40分重奖尚未结)
小弟想测试一下在passthru中使用定时器(XP环境下),编译是没问题,安装后本地连接状态栏显示的(TCP/IP)协议都不可用,重新启动机器也启动不了了。请帮我看看是什么原因:
我在passthru下作了如下修改: 在passthru.h中添加: // Adapt结构中add timer NDIS_MINIPORT_TIMER PacketProcessTimer; /////add timer function extern VOID PacketProcessTimerCallback( IN PVOID SystemSpecific1, IN PVOID FunctionContext, IN PVOID SystemSpecific2, IN PVOID SystemSpecific3 ); 在passthru.c中添加: VOID PacketProcessTimerCallback( IN PVOID SystemSpecific1, IN PVOID FunctionContext, IN PVOID SystemSpecific2, IN PVOID SystemSpecific3 ) { DbgPrint ("hello"); } 在MPInitialize中添加: //Initialize a timer NdisMInitializeTimer( &pAdapt->PacketProcessTimer, pAdapt->MiniportHandle, (PNDIS_TIMER_FUNCTION)PacketProcessTimerCallback, pAdapt); //Set the timer NdisMSetPeriodicTimer( &pAdapt->PacketProcessTimer, 10 //1000 MillisecondsPeriod=1 second ); 在MPHalt里添加 NdisMCacelTimer(&pAdapt->PacketProcessTimer,&cancelled); 不知道是哪里出错了。 [编辑 - 8/27/04 by longriver2003] |
|
|
沙发#
发布于:2004-08-26 12:12
Timer
Points to caller-supplied, resident storage for a timer object. The timer object is opaque to the caller, but, when it has been initialized, this pointer is a required parameter to the NdisM..Timer functions. // Adapt结构中add timer NDIS_MINIPORT_TIMER PacketProcessTimer; 多了个P,呵呵 :D |
|
板凳#
发布于:2004-08-26 12:41
DDK上说The minimum practicable interval to specify on Windows 2000 platforms is ten milliseconds. 你把时间在搞大点试试
|
|
地板#
发布于:2004-08-26 16:21
对了,我是没有加P。我上面写错了。另外我加到500也不管用。不知还有其他问题没有?
|
|
|
地下室#
发布于:2004-08-27 09:58
把时间改为100就可以了。奇怪!对时间的要求还挺高啊?
|
|
|