PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX Rückruffunktion (ndis.h)

NDIS ruft die ProtocolCloseAdapterCompleteEx-Funktion eines Protokolltreibers auf, um einen Close-Adaptervorgang abzuschließen, für den die NdisCloseAdapterEx-Funktion NDIS_STATUS_PENDING zurückgegeben hat.

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

Syntax

PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX ProtocolCloseAdapterCompleteEx;

void ProtocolCloseAdapterCompleteEx(
  [in] NDIS_HANDLE ProtocolBindingContext
)
{...}

Parameter

[in] ProtocolBindingContext

Ein Handle zu einem Kontextbereich, der vom Protokolltreiber zugeordnet wird. Der Protokolltreiber verwaltet die Kontextinformationen pro Bindung in diesem Kontextbereich. Der Treiber hat dieses Handle für NDIS bereitgestellt, als der Treiber die NdisOpenAdapterEx-Funktion aufgerufen hat.

Rückgabewert

Keine

Bemerkungen

ProtocolCloseAdapterCompleteEx ist eine erforderliche Funktion.

Wenn ProtocolUnbindAdapterEx darauf wartet, dass NDIS ProtocolCloseAdapterCompleteEx aufruft, kann diese Funktion einfach angeben, dass sie aufgerufen wurde, und zurückgeben (z. B. aktualisiert sie den Kontextbereich ProtocolBindingContext ). Dadurch kann die ProtocolCloseAdapterCompleteEx-Funktion den nicht bindungslosen Vorgang abschließen.

Nachdem der Protokolltreiber die NdisCloseAdapterEx-Funktion aufgerufen hat, ist das von der NdisOpenAdapterEx-Funktion zurückgegebene NdisBindingHandle-Handle nicht mehr gültig. Daher kann ProtocolCloseAdapterCompleteEx keine NdisXxx-Funktionen aufrufen, die dieses Handle als Parameter erfordern.

Wird der Die ProtocolUnbindAdapterEx-Funktion hat dies noch nicht getan. ProtocolCloseAdapterCompleteEx kann die Ressourcen freigeben, die der Protokolltreiber für Netzwerk-E/A-Vorgänge pro Bindung zugeordnet hat.

Wenn ProtocolUnbindAdapterEx NDIS_STATUS_PENDING zurückgegeben und das UnbindContext-Handle im Kontextbereich unter ProtocolBindingContext gespeichert hat, kann ProtocolCloseAdapterCompleteEx aufrufen. NdisCompleteUnbindAdapterEx-Funktion , um den Vorgang zum Aufheben der Bindung abzuschließen. Daher sollte ProtocolCloseAdapterCompleteEx den Kontextbereich erst freigeben, nachdem NdisCompleteUnbindAdapterEx aufgerufen wurde.

NDIS ruft ProtocolCloseAdapterCompleteEx unter IRQL = PASSIVE_LEVEL auf.

Beispiele

Um eine ProtocolCloseAdapterCompleteEx-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der funktion identifiziert, die Sie definieren. 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 ProtocolCloseAdapterCompleteEx-Funktion mit dem Namen "MyCloseAdapterCompleteEx" zu definieren, verwenden Sie den typ PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX , wie in diesem Codebeispiel gezeigt:

PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX MyCloseAdapterCompleteEx;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyCloseAdapterCompleteEx(
    NDIS_HANDLE  ProtocolBindingContext
    )
  {...}

Der PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX Funktionstyp ist in der Headerdatei Ndis.h 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 PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX 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 PASSIVE_LEVEL

Weitere Informationen

NdisCloseAdapterEx

NdisCompleteUnbindAdapterEx

NdisOpenAdapterEx

ProtocolUnbindAdapterEx