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