在 CoNDIS 中发送和接收数据

传输数据涉及通过已建立和激活的 VC 发送或接收数据包。

注意在为该 VC 调用 NdisClClCloseCall 后,协议驱动程序不得调用 NdisCoSendNetBufferLists 将数据发送到 VC。

CoNDIS 发送和接收函数类似于无连接发送和接收函数。 CoNDIS 和无连接接口之间的主要区别在于管理虚拟连接 (VC) 。 有关无连接发送和接收操作的详细信息,请参阅 发送和接收操作

在单个函数调用中,CoNDIS 驱动程序可以在每个 NET_BUFFER_LIST 结构上发送具有多个 NET_BUFFER 结构的多个NET_BUFFER_LIST结构。 此外,CoNDIS 驱动程序可以指示多个NET_BUFFER_LIST结构的已完成发送操作,每个NET_BUFFER_LIST结构上具有多个NET_BUFFER结构。

在接收路径中,CoNDIS 微型端口驱动程序可以提供NET_BUFFER_LIST结构列表来指示接收。 微型端口驱动程序提供的每个NET_BUFFER_LIST都包含一个NET_BUFFER结构。 由于不同的协议绑定可以处理每个NET_BUFFER_LIST结构,因此 NDIS 可以独立地将每个NET_BUFFER_LIST结构返回到微型端口驱动程序。

支持 NDIS 5。x 和早期驱动程序,CoNDIS 在旧NDIS_PACKET结构和基于 NET_BUFFER 的结构之间提供转换层。 CoNDIS 在NET_BUFFER结构和NDIS_PACKET结构之间执行必要的转换。 为了避免由于转换而降低性能,CoNDIS 驱动程序必须更新以支持NET_BUFFER结构,并且应支持所有数据路径中的多个NET_BUFFER_LIST结构。

本节包括下列主题:

从 CoNDIS 驱动程序发送 NET_BUFFER 结构

在 CoNDIS 驱动程序中接收 NET_BUFFER 结构