阅读:1208回复:1
Passthru中调用NdisRequest问题
小弟正在学习NDIS开发,有问题想请教大家。
我在Passthru的protocol.c的PtOpenAdapterComplete function中 NdisSetEvent(&pAdapt->Event);一句后添加了以下代码,想试着得到NDIS的版本号。tmp是个UCHAR数组。 pAdapt->Request.DATA.QUERY_INFORMATION.Oid = OID_GEN_DRIVER_VERSION; pAdapt->Request.DATA.QUERY_INFORMATION.InformationBuffer = tmp; pAdapt->Request.DATA.QUERY_INFORMATION.InformationBufferLength = sizeof(tmp); NdisRequest(&Status,pAdapt->BindingHandle,&pAdapt->Request); 然后又在PtRequestComplete function中加入打印得到的版本信息的语句,发现有以下现象: 1。直接安装改动后的passthru driver,用DbgView可以看到查询成功且正常打印出NDIS的version。但重启机器后蓝屏,显示IRQL Level is not less or equal level(大意如此),可是PtOpenAdapterComplete是运行在IRQL PASSIVE_LEVEL的,NdisRequest是运行在IRQL <= DISPATCH_LEVEL的,那在PtOpenAdapterComplete中调用NdisRequest应该没问题啊。是我理解错误吗? 2.想用SoftICE boot调试,但是刚进入win2000启动界面就死掉,键盘无响应,没办法调试。 大家给出出主意吧,谢谢了。 :( |
|
|
沙发#
发布于:2004-02-17 23:11
这两天浏览了前面关于NdisRequest的所有的帖子,还是找不到自己的问题所在。晕……孤军奋战感觉真痛苦…… :mad: :mad: :mad:
|
|
|