Steven Wang
驱动牛犊
驱动牛犊
  • 注册日期2008-01-24
  • 最后登录2010-06-27
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望76点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:1440回复:0

将NDIS中间层截获的packet数据传递给应用程序

楼主#
更多 发布于:2008-07-20 11:23
我自定义了一个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一样的功能,那就比较完美了,大家又什么想法,可以建议一下,万分感激!

大家有好的方法,或者代码一起分享一下。
游客

返回顶部