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 |