NdisCancelSendNetBufferLists 函数 (ndis.h)

协议驱动程序调用 NdisCancelSendNetBufferLists 函数来取消网络数据的传输。

语法

void NdisCancelSendNetBufferLists(
  [in] NDIS_HANDLE NdisBindingHandle,
  [in] PVOID       CancelId
);

参数

[in] NdisBindingHandle

NdisOpenAdapterEx 函数返回的句柄,用于标识取消应用到的微型端口驱动程序或虚拟微型端口。

[in] CancelId

取消标识符。 此标识符指定正在取消传输的网络数据。

返回值

没有

言论

协议驱动程序将它从更高级别的软件接收的 IRP 映射到 NDIS 网络数据。 NET_BUFFER_LIST 结构列表描述了协议驱动程序发送到较低级别的驱动程序进行传输的网络数据。 如果取消了 IRP,协议驱动程序可以调用 NdisCancelSendNetBufferLists 函数来取消相应 NDIS 网络数据的挂起传输。

调用 NDIS_SET_NET_BUFFER_LIST_CANCEL_ID 传递给较低级别的驱动程序进行传输的每个NET_BUFFER_LIST结构的宏。 NDIS_SET_NET_BUFFER_LIST_CANCEL_ID宏使用取消标识符标记指定的数据包。

NdisCancelSendNetBufferLists 取消使用指定取消标识符标记的所有数据的传输,并与指定的微型端口驱动程序相关联。 NdisBindingHandle 参数中指定的绑定句柄标识微型端口驱动程序。

NdisCancelSendNetBufferLists 函数取消单个绑定上的网络数据传输。 若要取消多个绑定上的网络数据传输,协议驱动程序必须为每个绑定调用一次 NdisCancelSendNetBufferLists 函数。

协议驱动程序必须确保 NdisBindingHandle 参数指定的句柄在调用 NdisCancelSendNetBufferLists期间保持有效。 也就是说,在 NdisCancelSendNetBufferLists 返回之前,协议驱动程序不得调用 NdisCloseAdapterEx 函数关闭绑定。

不能保证调用 NdisCancelSendNetBufferLists 将取消所有具有指定取消标识符的网络数据的挂起传输。 例如,如果协议驱动程序绑定到的下一个较低驱动程序不提供 MiniportCancelSend 函数,则调用 NdisCancelSendNetBufferLists 不执行任何作。

在所有情况下,NDIS 返回提交用于传输到原始协议驱动程序的网络数据 ProtocolSendNetBufferListsComplete 函数。 NDIS 返回已完成状态为NDIS_STATUS_SEND_ABORTED的已取消发送数据。 调用 NdisCancelSendNetBufferLists 和取消NET_BUFFER_LIST结构的返回之间的延迟可能会有所不同,因此无法完全指定。

要求

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

另请参阅

MiniportCancelSend

NDIS_SET_NET_BUFFER_LIST_CANCEL_ID

NET_BUFFER_LIST

NdisCloseAdapterEx

NdisOpenAdapterEx

ProtocolSendNetBufferListsComplete