阅读:3063回复:7
NDIS与底层驱动
本人最近在用NTDDK开发一个网络加密驱动。在NDIS过滤层驱动中,将接受的数据包中的数据从IP包中取出,然后调用底层的PCI设备驱动,对数据进行加密,然后,重新组织IP包。底层PCI设备驱动已经完成,经API测试,write和read一切正常。但是在NDIS过滤层驱动中,怎样调用底层的PCI设备驱动?我是这样调用的,但结果却造成了DOWN机。
IO_STATUS_BLOCK ioStatus; PIRP newIrp; PIPSYS_DEVICE_EXT devExt = (PIPSYS_DEVICE_EXT)DeviceObject->DeviceExtension; NTSTATUS status; KEVENT event; LARGE_INTEGER startOffset ; KeInitializeEvent(&event, NotificationEvent, FALSE); // // Build IRP to read MBR. // startOffset.QuadPart = (LONGLONG) 0; newIrp = IoBuildSynchronousFsdRequest(IRP_MJ_WRITE, devExt->PcicardDeviceObject , pIoBuffer, writelen, &startOffset, &event, &ioStatus ); if (!newIrp) { KdPrint( ("IO allocate irp failed\n") ) ; return STATUS_INSUFFICIENT_RESOURCES ; } // // Pass request to pcicard driver and wait for request to complete. // status = IoCallDriver(devExt->PcicardDeviceObject, newIrp); if (status == STATUS_PENDING) { KeWaitForSingleObject(&event, Suspended, KernelMode, FALSE, NULL); status = ioStatus.Status; } 另: 我的NDIS驱动加载到系统后,并没有马上分析并加密数据,而是通过一个API程序通知其开始加密。在执行加密之前,先执行命令ping ,调用底层PCI设备驱动,有时可以加密若干个包,最后在PCI设备驱动的DPC中执行IoCompleteRequest(irp, IO_NO_INCREMENT)时DOWN机;如果不执行ping命令,则第一次就在调用IoBuildSynchronousFsdRequest时DOWN机。 谁能帮助我?急!急!急!谢谢! 我的电邮是wxqcs@263.net [wxqcs 编辑于 2001-06-28 00:26] |
|
最新喜欢:mapofl |
沙发#
发布于:2001-06-28 11:29
你试试用ExCreateCallback,ExRegisterCallback,ExNotifyCallback这些函数把数据做参数传递过去,可不可以。
|
|
|
板凳#
发布于:2001-07-03 10:02
你的PCI驱动有没有把IRP处理完后交还?
底层PCI设备驱动经API测试时,有没有用数据冲一下? 你的IRP有没有经过队列处理? |
|
|
地板#
发布于:2001-07-04 10:29
说句比较外行的话,
看起来像是Irp根本不存在造成的. 2000下调试的吗?把出错代码贴出来,印证一下.要不怎么知道怎么回事? |
|
|
地下室#
发布于:2001-07-06 15:27
可不可以和我联系一下,我要做的正好也是这个东西
需要在98底下提取IP包,做加密!! 我对这个驱动程序还是一点都摸不着头脑呢 希望能和大家一起进步!!呵呵! 小弟我的号是:564215 谢谢大家!!! |
|
|
5楼#
发布于:2001-07-06 15:39
这是什么号码?不像电话号码啊.
不成是oicq? 我们公司重点封堵的东东. |
|
|
6楼#
发布于:2001-07-06 17:02
H-HAPPY果然是成天趴在网上的牛人
小弟不才正是用的QQ,只因为实验室这种小地方也用不着封啦 你在北京吗!? 特别想找个高手问问这个东西到底怎么回事的 以前一直在UNIX下混着,到现在我弱得居然连别人的贴子都看不大懂 真想一头撞死得了! 各位大哥一定要挽救一下我这个可以教育好的富农子弟呀!! |
|
|
7楼#
发布于:2001-07-11 13:44
What? 客气.竟然有人拿我当牛人?我身上可没有牛肉.
unix哥们可是没有用过.linux都没有玩过.好在不影响windows的使用. (一头汗啊) 看你的号码位数,好像是个老油条哦.大家不用客气.等楼上的把出错信息贴出来再分析吧. 你的是什么问题?拿出来摆摆,大家也好讨论啊.我还没有搞过过滤层的东东呢.反正我知道,你的东东可以转行做黑客工具.我喜欢.等你写好了,共享一套.我正好想做把刀呢. |
|
|