共用方式為


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 網路數據的擱置傳輸。

呼叫 針對 傳遞至較低層級驅動程式的每個NET_BUFFER_LIST結構,NDIS_SET_NET_BUFFER_LIST_CANCEL_ID宏。 NDIS_SET_NET_BUFFER_LIST_CANCEL_ID宏會使用取消標識符標記指定的封包。

NdisCancelSendNetBufferLists 會取消所有標示為指定取消標識符的數據傳輸,並與指定的迷你埠驅動程序相關聯。 在 NdisBindingHandle 參數中指定的系結句柄會識別迷你埠驅動程式。

NdisCancelSendNetBufferLists 函式會取消單一系結上的網路數據傳輸。 若要取消多個系結上的網路數據傳輸,通訊協定驅動程式必須針對每個系結呼叫 NdisCancelSendNetBufferLists 函式一次。

通訊協定驅動程式必須確定 NdisBindingHandle 參數指定的句柄在 呼叫 NdisCancelSendNetBufferLists 期間仍有效。 也就是說,通訊協定驅動程式不得呼叫 NdisCloseAdapterEx 函式,以在 NdisCancelSendNetBufferLists 傳回之前關閉系結。

不保證呼叫 NdisCancelSendNetBufferLists 將會取消所有具有指定取消標識碼之網路數據的擱置傳輸。 例如,如果通訊協定驅動程式所系結的下一個較低驅動程式不提供 MiniportCancelSend 函式, 則呼叫 NdisCancelSendNetBufferLists 不會執行任何動作。

在所有情況下,NDIS 都會傳回已提交以傳輸至原始通訊協定驅動程式的網路數據 ProtocolSendNetBufferListsComplete 函式 。 NDIS 會傳回完成狀態為 NDIS_STATUS_SEND_ABORTED的已取消傳送數據。 呼叫 NdisCancelSendNetBufferLists 和取消NET_BUFFER_LIST結構傳回之間的延遲可能會有所不同,因此無法完全指定。

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 Universal
標頭 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