指示已从微型端口驱动程序收到数据

下图演示了微型端口驱动程序接收指示。

说明微型端口驱动程序接收指示的示意图。

微型端口驱动程序调用 NdisMIndicateReceiveNetBufferLists 函数来指示从网络接收数据。 NdisMIndicateReceiveNetBufferLists 函数将指示的NET_BUFFER_LIST结构列表传递到堆栈上方的驱动程序。

如果微型端口驱动程序在 NdisMIndicateReceiveNetBufferListsReceiveFlags 参数中设置NDIS_RECEIVE_FLAGS_RESOURCES标志,则表示微型端口驱动程序必须立即重新获得NET_BUFFER_LIST结构的所有权。 在这种情况下,NDIS 不调用微型端口驱动程序的 MiniportReturnNetBufferLists 函数来返回 NET_BUFFER_LIST 结构。 微型端口驱动程序在 NdisMIndicateReceiveNetBufferLists 返回后立即重新获得所有权。

如果微型端口驱动程序未在 NdisMIndicateReceiveNetBufferListsReceiveFlags 参数中设置NDIS_RECEIVE_FLAGS_RESOURCES标志,则 NDIS 会将指示NET_BUFFER_LIST结构返回到微型端口驱动程序的 MiniportReturnNetBufferLists 函数。 在这种情况下,微型端口驱动程序放弃所指示结构的所有权,直到 NDIS 将它们返回到 MiniportReturnNetBufferLists 为止。