我有一个 NDIS 驱动程序,我将收到的数据包发送到用户服务,然后该服务标记那些正常的数据包(不是恶意的),然后我迭代可以很好接收的数据包,然后通过转换将它们一一发送它们中的每一个都返回到带有一个 NetBuffer 的正确 NetBufferList,然后我使用 NdisFIndicateReceiveNetBufferLists 指示它们。
这导致了通过 SMB(从共享复制文件)传输大文件时出现的问题,从而显着降低了传输速度。
作为一种解决方法,我现在将所有正常的 NBL 链接在一起(而不是逐个发送它们),然后通过 NdisFIndicateReceiveNetBufferLists 立即发送所有这些 NBL。
我的问题是,此更改会导致任何问题吗?逐一发送 X 数量的 NBL 与将它们链接在一起并一次发送所有之间有什么区别?(因为其中大多数可能与不同的流程/应用程序相关)
此外,与通过 FilterSendNetBufferLists 发送多数据包相比,在多数据包接收中将数据包链接在一起的好处要大得多,这是为什么呢?