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 和更新版本支援。 |
目標平臺 | 普遍 |
標頭 | ndis.h (包括 Ndis.h) |
連結庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | Irql_SendRcv_Function(ndis) |