取消 Miniport 驅動程式中的傳送要求
下圖說明迷你埠驅動程式取消傳送作業。
通訊協定、篩選和中繼驅動程式可以呼叫 NdisCancelSendNetBufferLists 來取消未處理傳送要求。 這些過度套用的驅動程式必須在發出傳送要求之前,先以取消識別碼標記傳送資料。
NDIS 會呼叫迷你埠驅動程式的 MiniportCancelSend 函式,以取消以指定取消識別碼標示的所有 NET_BUFFER_LIST 結構傳輸。
迷你埠驅動程式的 MiniportCancelSend 函式會執行下列作業:
周遊指定配接器的未處理傳送要求清單,並 呼叫 NDIS_GET_NET_BUFFER_LIST_CANCEL_ID ,以取得每個NET_BUFFER_LIST結構的取消識別碼。 迷你埠驅動程式會比較NDIS_GET_NET_BUFFER_LIST_CANCEL_ID傳回的取消識別碼與 NDIS 傳遞至 MiniportCancelSend的取消識別碼。
從取消識別碼符合未完成傳送要求清單中指定取消識別碼的所有NET_BUFFER_LIST結構中移除。
針對所有取消NET_BUFFER_LIST結構呼叫 NdisMSendNetBufferListsComplete 函式,以傳回結構。迷你埠驅動程式會將NET_BUFFER_LIST結構的狀態欄位設定為NDIS_STATUS_SEND_ABORTED。