新的分散/聚合 DMA 支持

与以前版本的 NDIS 不同,NDIS 6.0 在映射数据包以便进行 DMA 传输之前,将发送数据包传递给微型端口驱动程序。 获取数据包后,微型端口驱动程序可以请求 NDIS 为数据包提供散点/收集列表。

这提供了以下好处:

  • 由于微型端口驱动程序在映射数据包之前有权访问数据包,因此微型端口驱动程序对该数据包所做的任何更改都反映在关联的散点/收集列表数据中。

  • 微型端口驱动程序可以通过将小数据包或高度碎片数据包复制到预分配的缓冲区来优化这些数据包的传输,从而消除映射的需要。 这消除了不必要的处理。

  • NDIS 可以在一个函数调用中安全地将多个 NET_BUFFER 结构传递给微型端口驱动程序。 这可以减少对微型端口驱动程序的调用,从而提高系统性能。

  • 由于微型端口驱动程序可以为散点/收集列表预分配内存,因此 NDIS 不必在运行时为散点/收集列表分配内存。

有关 NDIS 6.0 散点/收集 DMA 的详细信息,请参阅 NDIS 6.0 Scatter/Gather DMA