改进的发送和接收路径

NDIS 6.0 发送和接收路径已得到改进,如下所示以增强性能:

  • 所有 NDIS 6.0 及更高版本的驱动程序发送和接收函数都可以通过单个函数调用传输 NET_BUFFER_LIST 结构及其关联的 NET_BUFFER 结构的链接列表。 这种对真正的多包发送和接收操作的支持大大减少了驱动程序必须进行的函数调用数。

  • 调用发送或接收函数时,在 DISPATCH_LEVEL 运行的驱动程序可以将其 IRQL 指示给 NDIS。 当 NDIS 随后调用堆栈中的其他驱动程序时,这些驱动程序无需测试 IRQL 或将其设置为 DISPATCH_LEVEL。 这可以减少与在关键代码节中测试和设置 IRQL 相关的开销。

  • 驱动程序在驱动程序堆栈中向上和向下传递数据包时,可以请求 NDIS 调整NET_BUFFER数据偏移量以适应标头信息。 发送数据包时,驱动程序可以扩展已用数据空间,以适应驱动程序的标头信息。 指示接收数据包时,驱动程序可以在驱动程序访问完其标头信息后减少已用数据空间。 这种在不分配和释放内存或复制数据的情况下动态调整NET_BUFFER结构中已用数据空间的功能减少了处理网络数据所需的开销。

有关 NDIS 6.0 中的发送和接收数据处理的详细信息,请参阅 NET_BUFFER体系结构