阅读:1499回复:0
将NDIS中间层截获的packet数据传递给应用程序
我自定义了一个IOCTL_GET_PACKET,用于截取中间层的数据包。
驱动程序中我定义了一个全局的变量mybuffer[1518]; 一旦我收到IOCTL_GET_PACKET,在ProtoReceive,ProtoReceivePacket中用于截取NDIS_PACKET数据的函数生效,把NDIS_PACKET 中chain的buffer数据复制到mybuffer中,然后再将mybuffer拷贝到pIrp->AssociatedIrp.SystemBuffer中。 但是总是有一个错误pagefault,无奈!而且只有发一次IOCTL_GET_PACKET才取一次数据,效率低下。我ixiang能做到像winpcap一样的功能,那就比较完美了,大家又什么想法,可以建议一下,万分感激! 大家有好的方法,或者代码一起分享一下。 |
|