阅读:1788回复:4
关于IoBuildDeviceIoControlRequest,很菜的
我参考了DDK的HOOK例子,编了个TCP钩子,采用函数
deviceInfo->callback.ExtensionPointer= DropTcpPackets(为过滤TCP包的函数地址); ipFilterIRP=IoBuildDeviceIoControlRequest(IOCTL_PF_SET_EXTENSION_POINTER, deviceInfo->filterObject , &deviceInfo->callback , sizeof(deviceInfo>callback), NULL,0,FALSE,NULL,NULL);能成功返回,并且能过滤掉所有TCP包,但是当我要卸载时(在UNLOAD里实现) deviceInfo->callback.ExtensionPointer= NULL; ipFilterIRP=IoBuildDeviceIoControlRequest(IOCTL_PF_SET_EXTENSION_POINTER, deviceInfo->filterObject , &deviceInfo->callback , sizeof(deviceInfo->callback), NULL,0,FALSE,&event,NULL); KeWaitForSingleObject(&event,Executive, KernelMode, FALSE, NULL)无法返回,也就是上面IoBuildDeviceIoControlRequest函数的事件无法SET,脑袋疼啊!!!!!! |
|
沙发#
发布于:2001-07-26 18:21
原来是这样,这个问题太菜,建议斑竹删除该帖!!!!!
|
|
板凳#
发布于:2002-10-28 20:32
你好啊!
我更菜的啊! :( 你能把你的例子发给我吗?(bie_zm@163.com) 谢谢! 你上面的是什么原因? 我给最高分你! |
|
地板#
发布于:2002-10-29 09:31
ipFilterIRP=IoBuildDeviceIoControlRequest(IOCTL_PF_SET_EXTENSION_POINTER, deviceInfo->filterObject , &deviceInfo->callback , sizeof(deviceInfo->callback), NULL,0,FALSE,&event,NULL); 之後 |
|
地下室#
发布于:2002-10-29 11:00
谢谢2位大侠! :D
|
|