Udostępnij za pośrednictwem


Anulowanie żądania wysyłania w sterowniku miniportu

Poniższa ilustracja przedstawia operację anulowania wysyłania przez sterownik miniport.

Diagram ilustrujący operację anulowania wysyłania sterownika miniportu.

Sterowniki protokołu, filtru i pośredniego mogą wywoływać NdisCancelSendNetBufferLists, aby anulować zaległe żądania wysyłania. Te nadrzędne sterowniki muszą oznaczać dane za pomocą identyfikatora anulowania, zanim złożą żądanie wysyłki.

Usługa NDIS wywołuje funkcję miniportu MiniportCancelSend, aby anulować transmisję wszystkich struktur NET_BUFFER_LIST oznaczonych określonym identyfikatorem anulowania.

Funkcja sterownika miniportu MiniportCancelSend przeprowadza następujące operacje:

  1. Przechodzi przez listę oczekujących żądań wysyłania dla określonego adaptera i wywołuje NDIS_GET_NET_BUFFER_LIST_CANCEL_ID w celu uzyskania identyfikatora anulowania dla każdej struktury NET_BUFFER_LIST. Sterownik miniportu porównuje identyfikator anulowania zwracany przez NDIS_GET_NET_BUFFER_LIST_CANCEL_ID z identyfikatorem anulowania, który NDIS przekazał do MiniportCancelSend.

  2. Usuwa ze wszystkich struktur NET_BUFFER_LIST te, których identyfikatory anulowania pasują do określonego identyfikatora anulowania, z listy zaległych żądań wysyłki.

  3. Wywołuje funkcję NdisMSendNetBufferListsComplete dla wszystkich anulowanych struktur NET_BUFFER_LIST, aby je zwrócić. Sterownik miniportu ustawia pole stanu struktur NET_BUFFER_LIST na NDIS_STATUS_SEND_ABORTED.