MINIPORT_RETURN_NET_BUFFER_LISTS Rückruffunktion (ndis.h)

NDIS ruft die MiniportReturnNetBufferLists-Funktion auf, um den Besitz von NET_BUFFER_LIST-Strukturen , zugeordneten NET_BUFFER-Strukturen und allen angefügten MDLs an einen Miniporttreiber zurückzugeben.

Hinweis Sie müssen die Funktion mit dem typ MINIPORT_RETURN_NET_BUFFER_LISTS deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

Syntax

MINIPORT_RETURN_NET_BUFFER_LISTS MiniportReturnNetBufferLists;

void MiniportReturnNetBufferLists(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PNET_BUFFER_LIST NetBufferLists,
  [in] ULONG ReturnFlags
)
{...}

Parameter

[in] MiniportAdapterContext

Ein Handle für einen Kontextbereich, den der Miniporttreiber in seiner MiniportInitializeEx-Funktion zugeordnet hat. Der Miniporttreiber verwendet diesen Kontextbereich, um Zustandsinformationen zu einem Adapter zu verwalten.

[in] NetBufferLists

Ein Zeiger auf eine verknüpfte Liste von NET_BUFFER_LIST Strukturen, die NDIS an den Miniporttreiber zurückgibt. Die verknüpfte Liste kann NET_BUFFER_LIST Strukturen aus mehreren vorherigen Aufrufen der NdisMIndicateReceiveNetBufferLists-Funktion .

[in] ReturnFlags

NDIS-Flags, die mit einem OR-Vorgang kombiniert werden können. Diese Funktion unterstützt das NDIS_RETURN_FLAGS_DISPATCH_LEVEL-Flag, das, sofern festgelegt, angibt, dass der aktuelle IRQL DISPATCH_LEVEL ist. Weitere Informationen zu diesem Flag finden Sie unter Dispatch IRQL Tracking.For more information about this flag, see Dispatch IRQL Tracking.

Rückgabewert

Keine

Bemerkungen

MiniportReturnNetBufferLists ist eine erforderliche Funktion für Miniporttreiber, die empfangene Netzwerkdaten mit dem NdisMIndicateReceiveNetBufferLists-Funktion . Wenn ein überlastender Treiber die NdisReturnNetBufferLists-Funktion , NDIS ruft die MiniportReturnNetBufferLists-Funktion des Miniporttreibers auf, der die angegebenen NET_BUFFER_LIST-Strukturen angibt.

MiniportReturnNetBufferLists kann eine zurückgegebene NET_BUFFER_LIST Struktur für die Verwendung in einer nachfolgenden Empfangsanzeige vorbereiten. MiniportReturnNetBufferLists kann zwar die NET_BUFFER_LIST-Strukturen an einen Pool zurückgeben (z. B. könnte die Funktion NdisFreeNetBufferList aufgerufen werden), aber es kann effizienter sein, die Strukturen wiederzuverwenden, ohne sie an den Pool zurückzugeben.

NDIS ruft MiniportReturnNetBufferLists unter IRQL<= DISPATCH_LEVEL auf.

Beispiele

Um eine MiniportReturnNetBufferLists-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten Funktion identifiziert. Windows bietet eine Reihe von Funktionstypen für Treiber. Das Deklarieren einer Funktion mithilfe der Funktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Voraussetzung für das Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine MiniportReturnNetBufferLists-Funktion mit dem Namen "MyReturnNetBufferLists" zu definieren, verwenden Sie den typ MINIPORT_RETURN_NET_BUFFER_LISTS , wie in diesem Codebeispiel gezeigt:

MINIPORT_RETURN_NET_BUFFER_LISTS MyReturnNetBufferLists;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyReturnNetBufferLists(
    NDIS_HANDLE  MiniportAdapterContext,
    PNET_BUFFER_LIST  NetBufferLists,
    ULONG  ReturnFlags
    )
  {...}

Der MINIPORT_RETURN_NET_BUFFER_LISTS Funktionstyp ist in der Ndis.h-Headerdatei definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, müssen Sie der Funktionsdefinition die anmerkung Use_decl_annotations hinzufügen. Die Use_decl_annotations-Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den MINIPORT_RETURN_NET_BUFFER_LISTS Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für NDIS-Treiber.

Informationen zu Use_decl_annotations finden Sie unter Verhalten von Funktionen mit Anmerkungen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Windows
Kopfzeile ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

MiniportInitializeEx

NET_BUFFER

NET_BUFFER_LIST

NdisFreeNetBufferList

NdisMIndicateReceiveNetBufferLists

NdisReturnNetBufferLists