每个人。又是我,将 WinPcap 从 NDIS 6 协议移植到 NDIS 6 过滤器的人:) 我遇到了一个错误,让我困了两天。这里是:我安装好npf6x.sys驱动(原名为npf.sys)后,可以通过“net start npf”启动服务。然后我打开了 Wireshark。然后网络出现故障(托盘图标上的感叹号)。经过远程调试,我发现 FilterReceiveNetBufferLists 例程从未被调用过。我相信 RX 链接在这里被破坏了。但是,FilterSendNetBufferLists 被正常调用。我确定 FilterAttach 已成功调用,现在没有调用 FilterUnload。所以过滤器模块应该还在它的位置。但它不能在 RX 路径中工作。然后我点击了Wireshark的“开始”按钮,竟然发现网络已经恢复了。然后我停止当前捕获并单击“接口列表”,网络再次关闭。太奇怪了。
我没有在驱动程序的运行过程中更改处理程序指针。我似乎驱动程序也没有被锁阻塞。谁能告诉我是否有任何情况导致 NDIS 在运行期间不调用过滤器的 FilterReceiveNetBufferLists?
还有任何官方文档说明如何从 NDIS 6 协议移植到 NDIS 6 过滤器?我只找到了从 NDIS 5 移植到 NDIS 6 的文档。
谢谢。