大家,我正在将 WinPcap 从 NDIS6 协议移植到 NDIS6 过滤器。快结束了,但我还有一些问题:
ndislwf 的评论说“不提供 FilerSendNetBufferList 处理程序的过滤器不能自行发起发送。” 这是否意味着如果我使用 NdisFSendNetBufferLists 函数,我必须提供 FilerSendNetBufferList 处理程序?我的驱动会通过 NdisFSendNetBufferLists 发送自建数据包,但我不想过滤其他程序发送的数据包。
与 FilterReturnNetBufferLists 相同,它表示“不提供 FilterReturnNetBufferLists 处理程序的过滤器不能自行发起接收指示。”。“发起接收指示”是什么意思?NdisFIndicateReceiveNetBufferLists 或 NdisFReturnNetBufferLists 或两者兼而有之?另外,对于我的驱动程序,我只想捕获接收到的数据包而不是返回的数据包。因此,如果可能的话,我不想出于性能目的提供 FilterReturnNetBufferLists 函数。
另一个类似的情况是FilterOidRequestComplete和NdisFOidRequest,实际上我的过滤驱动只想通过NdisFOidRequest自己发送Oid请求,而不是过滤其他人发送的Oid请求。我可以将 FilterOidRequest、FilterCancelOidRequest 和 FilterOidRequestComplete 保留为 NULL 吗?或者哪一个是必须使用 NdisFOidRequest 的?
谢谢。