NdisCancelSendNetBufferLists-Funktion (ndis.h)

Protokolltreiber rufen die NdisCancelSendNetBufferLists-Funktion auf, um die Übertragung von Netzwerkdaten abzubrechen.

Syntax

void NdisCancelSendNetBufferLists(
  [in] NDIS_HANDLE NdisBindingHandle,
  [in] PVOID       CancelId
);

Parameter

[in] NdisBindingHandle

Das von der NdisOpenAdapterEx-Funktion zurückgegebene Handle, das den Miniporttreiber oder den virtuellen Miniport identifiziert, für den der Abbruch gilt.

[in] CancelId

Der Abbruchbezeichner. Dieser Bezeichner gibt die Netzwerkdaten an, für die die Übertragung abgebrochen wird.

Rückgabewert

Keine

Bemerkungen

Ein Protokolltreiber ordnet IRPs, die er von höherer Software empfängt, NDIS-Netzwerkdaten zu. Eine Liste mit NET_BUFFER_LIST Strukturen beschreibt die Netzwerkdaten, die der Protokolltreiber zur Übertragung an Treiber niedrigerer Ebene sendet. Wenn ein IRP abgebrochen wird, kann ein Protokolltreiber die NdisCancelSendNetBufferLists-Funktion aufrufen, um die ausstehende Übertragung der entsprechenden NDIS-Netzwerkdaten abzubrechen.

Rufen Sie die folgenden NDIS_SET_NET_BUFFER_LIST_CANCEL_ID Makro für jede NET_BUFFER_LIST-Struktur, die für die Übertragung an Treiber niedrigerer Ebene übergeben wird. Das NDIS_SET_NET_BUFFER_LIST_CANCEL_ID Makro markiert das angegebene Paket mit einem Abbruchbezeichner.

NdisCancelSendNetBufferLists bricht die Übertragung aller Daten ab, die mit dem angegebenen Abbruchbezeichner gekennzeichnet sind und dem angegebenen Miniporttreiber zugeordnet sind. Das im NdisBindingHandle-Parameter angegebene Bindungshandle identifiziert den Miniporttreiber.

Die NdisCancelSendNetBufferLists-Funktion bricht Netzwerkdatenübertragungen für eine einzelne Bindung ab. Um Netzwerkdatenübertragungen über mehrere Bindung abzubrechen, muss ein Protokolltreiber die NdisCancelSendNetBufferLists-Funktion einmal für jede Bindung aufrufen.

Der Protokolltreiber muss sicherstellen, dass das Handle, das der NdisBindingHandle-Parameter angibt, für die Dauer des Aufrufs von NdisCancelSendNetBufferLists gültig bleibt. Das heißt, der Protokolltreiber darf die NdisCloseAdapterEx-Funktion nicht aufrufen, um die Bindung zu schließen, bevor NdisCancelSendNetBufferLists zurückgegeben wird.

Es gibt keine Garantie dafür, dass der Aufruf von NdisCancelSendNetBufferLists die ausstehende Übertragung aller Netzwerkdaten mit dem angegebenen Abbruchbezeichner abbricht. Wenn beispielsweise der nächstniedrige Treiber, an den der Protokolltreiber gebunden ist, keine MiniportCancelSend-Funktion bereitstellt, bewirkt ein Aufruf von NdisCancelSendNetBufferLists nichts.

In allen Fällen gibt NDIS Netzwerkdaten zurück, die zur Übertragung an den ursprünglichen Protokolltreiber übermittelt wurden. ProtocolSendNetBufferListsComplete-Funktion . NDIS gibt abgebrochene Sendedaten mit einer status von NDIS_STATUS_SEND_ABORTED zurück. Die Verzögerung zwischen dem Aufruf von NdisCancelSendNetBufferLists und der Rückgabe der abgebrochenen NET_BUFFER_LIST Strukturen kann variieren und kann daher nicht genau angegeben werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis.h (include Ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_SendRcv_Function(ndis)

Weitere Informationen

MiniportCancelSend

NDIS_SET_NET_BUFFER_LIST_CANCEL_ID

NET_BUFFER_LIST

NdisCloseAdapterEx

NdisOpenAdapterEx

ProtocolSendNetBufferListsComplete