阅读:3366回复:4
ipfltdrv.sys 在win7下使用的问题,快一个多月了没解决,急盼高手出现帮看看!
// 本人写一个简单的网址过滤驱动程序, 其中用到 ipfltdrv.sys 驱动程序
// 运行在 XP下正常。但是在 win7 出了问题,具体请看下面主要代码: // // NTSTATUS SetFilterFunction(PacketFilterExtensionPtr filterFunction) { NTSTATUS status = STATUS_SUCCESS, waitStatus=STATUS_SUCCESS; UNICODE_STRING filterName; PDEVICE_OBJECT ipDeviceObject=NULL; PFILE_OBJECT ipFileObject=NULL; PF_SET_EXTENSION_HOOK_INFO filterData; KEVENT event; IO_STATUS_BLOCK ioStatus; PIRP irp; RtlInitUnicodeString(&filterName, DD_IPFLTRDRVR_DEVICE_NAME); status = IoGetDeviceObjectPointer(&filterName, SYNCHRONIZE|GENERIC_READ|GENERIC_WRITE, &ipFileObject, &ipDeviceObject); // 1. IoGetDeviceObjectPointer XP 和 win7 正常 // // if(NT_SUCCESS(status)) { filterData.ExtensionPointer = filterFunction; KeInitializeEvent(&event, NotificationEvent, FALSE); irp = IoBuildDeviceIoControlRequest(IOCTL_PF_SET_EXTENSION_POINTER, ipDeviceObject, (PVOID) &filterData, sizeof(PF_SET_EXTENSION_HOOK_INFO), NULL, 0, FALSE, &event, &ioStatus); // 2. IoBuildDeviceIoControlRequest XP 和 win7 正常 // // if(irp != NULL) { status = IoCallDriver(ipDeviceObject, irp); // 3. IoCallDriver XP 和 win7 不一样了: // // xp下运行返回 status = 0 成功 // win7 下运行返回 status = 0xc000000d // 经查, 0xc000000d 含义为无效参数, 可是跟踪两个参数 // ipDeviceObject, irp 没什么异样, 怎么就无效了呢!? // 因为这函数出错, // 这过滤函数就不起作用了, 查了很久, 都不知道啥原因? // if (status == STATUS_PENDING) waitStatus = KeWaitForSingleObject(&event, Executive, KernelMode, FALSE, NULL); status = ioStatus.Status; } else status = STATUS_INSUFFICIENT_RESOURCES; if(ipFileObject != NULL) ObDereferenceObject(ipFileObject); ipFileObject = NULL; ipDeviceObject = NULL; } return status; } |
|
|
沙发#
发布于:2011-03-22 12:53
楼主,该过滤驱动在win7下已不再支持,应改用Windows Filtering Platform Callout Drivers
或者NDIS Filter Drivers来替代。 |
|
板凳#
发布于:2011-03-22 12:55
不过很感兴趣你是怎样做到在xp下使用该驱动过滤网址的!可否交流一下
|
|
地板#
发布于:2011-08-02 12:56
回 2楼(jscool520) 的帖子
对不起,才看到你的留言。很高兴能认识你,我初学写驱动,特希望有机会请教你。我的qq 674806179. email: chenjinyuan64@163.com , 电话 13601190395 陈金源。 我用 ipfltdrv.sys 只做了简单的网址过滤。win7 就不好用了。 期盼你的回复 |
|
|
地下室#
发布于:2011-08-02 12:57
回 1楼(jscool520) 的帖子
对不起,才看到你的留言。很高兴能认识你,我初学写驱动,特希望有机会请教你。我的qq 674806179. email: chenjinyuan64@163.com , 电话 13601190395 陈金源。 我用 ipfltdrv.sys 只做了简单的网址过滤。win7 就不好用了。 期盼你的回复 |
|
|