NdisMSendNetBufferListsComplete 函数 (ndis.h)

微型端口驱动程序调用 NdisMSendNetBufferListsComplete 函数,以将 NET_BUFFER_LIST 结构的链接列表返回到过度的驱动程序,并返回发送请求的最终状态。

语法

void NdisMSendNetBufferListsComplete(
  [in] NDIS_HANDLE      MiniportAdapterHandle,
       PNET_BUFFER_LIST NetBufferList,
  [in] ULONG            SendCompleteFlags
);

参数

[in] MiniportAdapterHandle

NDIS 传递给 MiniportInitializeEx 函数的微型端口 句柄。

NetBufferList

指向NET_BUFFER_LIST结构链接列表的指针。 微型端口驱动程序在先前对其 MiniportSendNetBufferLists 函数的调用中收到了NET_BUFFER_LIST结构。

[in] SendCompleteFlags

可与 OR 操作组合的 NDIS 标志。 若要清除所有标志,请将此成员设置为零。 此函数支持以下NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL标志:如果已设置,则指示当前 IRQL 是DISPATCH_LEVEL。 有关此标志的详细信息,请参阅 Dispatch IRQL Tracking

返回值

备注

微型端口驱动程序调用 NdisMSendNetBufferListsComplete 以完成 NDIS 对驱动程序的 MiniportSendNetBufferLists 函数发出的发送请求。 微型端口驱动程序指定与已完成的发送请求关联的 NET_BUFFER_LIST 结构的链接列表。 当发送请求的状态处于挂起状态时,微型端口驱动程序将保留NET_BUFFER_LIST结构和与NET_BUFFER_LIST结构关联的所有协议分配资源的所有权。

在微型端口驱动程序调用 NdisMSendNetBufferListsComplete 后,NDIS 调用调用调用 NdisSendNetBufferLists 函数的驱动程序的 ProtocolSendNetBufferListsComplete 函数来启动发送请求。

微型端口驱动程序可以按任何顺序完成发送请求。 例如,微型端口驱动程序可以从多个 MiniportSendNetBufferList 调用连接NET_BUFFER_LIST结构列表,或者从 MiniportSendNetBufferLists 调用拆分列表。 但是,微型端口驱动程序不得修改与 NET_BUFFER_LIST 结构关联的NET_BUFFER结构的列表。

微型端口驱动程序必须在 NetBufferLists 参数指定的每个NET_BUFFER_LIST结构的 Status 成员中设置以下状态代码之一:

结构 说明
NDIS_STATUS_SUCCESS 已成功处理NET_BUFFER_LIST结构和关联的NET_BUFFER结构描述的所有网络数据,以便传输。 例如,微型端口驱动程序将数据复制到队列或已传输数据。
NDIS_STATUS_INVALID_LENGTH 与此NET_BUFFER_LIST结构关联的某些NET_BUFFER结构中的数据大小对于基础 NIC 来说太大。
NDIS_STATUS_RESOURCES 由于资源不足,此NET_BUFFER_LIST结构的发送请求失败。
NDIS_STATUS_PAUSED 微型端口适配器处于“已暂停”状态,如 MiniportPause 函数的参考页上所述。
NDIS_STATUS_SEND_ABORTED NDIS 调用 MiniportCancelSend 函数来取消此NET_BUFFER_LIST结构的发送操作。
NDIS_STATUS_RESET_IN_PROGRESS 由于重置,微型端口驱动程序中止了发送请求。
NDIS_STATUS_FAILURE 微型端口驱动程序由于上述原因以外的某些原因使发送请求失败。 例如,微型端口驱动程序可能会因硬件故障而使发送请求失败。

微型端口驱动程序对 NdisMSendNetBufferListsComplete 的调用不一定意味着发送请求的数据已通过网络传输。 数据可能在 NIC 硬件中排队。

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 通用
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 Irql_SendRcv_Function (ndis) 、NdisTimedDataHang、NdisTimedDataSend

另请参阅

MiniportCancelSend

MiniportInitializeEx

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists