Condividi tramite


Annullamento di una richiesta di invio in un driver Miniport

La figura seguente illustra un'operazione di invio di annullamento del driver miniport.

Diagramma che illustra un'operazione di invio di annullamento del driver miniport.

I driver di protocollo, filtro e intermedio possono chiamare NdisCancelSendNetBufferLists per annullare le richieste di invio in sospeso. Questi driver eccessivamente devono contrassegnare i dati di invio con un ID di annullamento prima di effettuare una richiesta di invio.

NDIS chiama la funzione MiniportCancelSend di un driver miniport per annullare la trasmissione di tutte le strutture NET_BUFFER_LIST contrassegnate con un identificatore di annullamento specificato.

La funzione MiniportCancelSend di un driver miniport esegue le operazioni seguenti:

  1. Attraversa l'elenco delle richieste di invio in sospeso per l'adattatore specificato e chiama NDIS_GET_NET_BUFFER_LIST_CANCEL_ID per ottenere l'identificatore di annullamento per ogni struttura di NET_BUFFER_LIST. Il driver miniport confronta l'ID di annullamento che NDIS_GET_NET_BUFFER_LIST_CANCEL_ID restituisce con l'ID di annullamento passato a MiniportCancelSend.

  2. Rimuove da tutte le strutture NET_BUFFER_LIST i cui identificatori di annullamento corrispondono all'identificatore di annullamento specificato dall'elenco delle richieste di invio in sospeso.

  3. Chiama la funzione NdisMSendNetBufferListsComplete per tutte le strutture NET_BUFFER_LIST annullate per restituire le strutture. Il driver miniport imposta il campo di stato delle strutture NET_BUFFER_LIST su NDIS_STATUS_SEND_ABORTED.