通过中间驱动程序传输网络数据

将中间驱动程序注册为微型端口驱动程序中所述,在向 NdisMRegisterMiniportDriver 注册时,中间驱动程序必须提供 MiniportSendNetBufferLists 函数。 如果驱动程序具有无连接的下边缘,MiniportSendNetBufferLists 函数可以通过调用 NdisSendNetBufferLists 转发传入的NET_BUFFER_LIST结构。 MiniportSendNetBufferLists 可以使用 NdisSendNetBufferList 发送它接收的NET_BUFFER_LIST结构列表,而不考虑基础微型端口驱动程序的功能。

MiniportSendNetBufferLists 接收按 NdisSendNetBufferList 的过度调用方确定的顺序排列的NET_BUFFER_LIST结构的列表。 在大多数情况下,中间驱动程序应在将NET_BUFFER_LIST结构的传入数组传递到基础微型端口驱动程序时保持此顺序。 在将数据传递给基础驱动程序之前修改网络数据中的数据的中间驱动程序可以重新排序列表。

NDIS 始终保留作为链接列表传递到 NdisSendNetBufferListsNET_BUFFER_LIST结构指针的顺序。 基础微型端口驱动程序还假定传递到其 MiniportSendNetBufferLists 函数的列表意味着网络数据应按相同的顺序传输。