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。 有关此标志的详细信息,请参阅 调度 IRQL 跟踪

返回值

没有

言论

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

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

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

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

结构 描述
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)
Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 Irql_SendRcv_Function(ndis)、NdisTimedDataHang、NdisTimedDataSend

另请参阅

MiniportCancelSend

MiniportInitializeEx

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists