Freigeben über


PROTOCOL_CL_CLOSE_AF_COMPLETE Rückruffunktion (ndis.h)

Die ProtocolClCloseAfComplete--Funktion wird von verbindungsorientierten NDIS-Clients verwendet. Alle verbindungsorientierten NDIS-Clients müssen über ProtocolClCloseAfComplete- Funktionen verfügen, um die asynchronen Vorgänge auszuführen, die sie mit NdisClCloseAddressFamily.

Hinweis Sie müssen die Funktion mithilfe des PROTOCOL_CL_CLOSE_AF_COMPLETE-Typs deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt "Beispiele".
 

Syntax

PROTOCOL_CL_CLOSE_AF_COMPLETE ProtocolClCloseAfComplete;

void ProtocolClCloseAfComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolAfContext
)
{...}

Parameter

[in] Status

Gibt den endgültigen Status der vom Client initiierten Anforderung an, um die Adressfamilie zu schließen, die eine der folgenden Sein kann:

NDIS_STATUS_SUCCESS

Die Adressfamilie wurde geschlossen. Die NdisAfHandle-, die die offene Adressfamilie darstellt, die der Client in seinem ProtocolAfContext Bereich gespeichert hat, ist jetzt ungültig.

NDIS_STATUS_FAILURE

Entweder hat der AF VC(s) und/oder registrierte SAP(en) zugeordnet, die der Client freigeben muss, bevor er versucht, den AF zu schließen, oder der Client mit dem Namen NdisClCloseAddressFamily zweimal, da NDIS festgestellt hat, dass der AF-Zustand als "schließend" markiert wurde.

[in] ProtocolAfContext

Gibt das vom Client bereitgestellte Handle für den Kontextbereich pro AF an. Der Client hat diesen Kontextbereich ursprünglich eingerichtet und dieses Handle mit NdisOpenAddressFamilyExan NDIS übergeben.

Rückgabewert

Nichts

Bemerkungen

Nachdem sichergestellt wurde, dass es keine offenen VCs und/oder registrierten SAPs in seiner offenen Adressfamilie hat, ruft ein Client NdisClCloseAddressFamily auf, um die Zuordnung zwischen sich selbst, einem Anrufmanager und einer bestimmten zugrunde liegenden NIC zu löschen. NDIS ruft die ProtocolCmCloseAf--Funktion für den Anruf-Manager auf, den dieser Client ursprünglich zum Öffnen der Adressfamilie als asynchronen Vorgang verwendet hat. Nach dem Aufrufen NdisClCloseAddressFamilysollte der Client die NdisAfHandle ungültig betrachten.

Folglich muss der Client über eine ProtocolClCloseAfComplete--Funktion verfügen, die NDIS aufruft, wenn der asynchrone Close-AF-Vorgang ausgeführt wird. Wenn die Eingabe Status NDIS_STATUS_SUCCESS ist, kann der Client seinen Af-Kontextbereich freigeben.

beispiele für

Um eine ProtocolClCloseAfComplete--Funktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der Funktion identifiziert, die Sie definieren. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe der Funktionstypen können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Wenn Sie beispielsweise eine ProtocolClCloseAfComplete--Funktion mit dem Namen "MyClCloseAfComplete" definieren möchten, verwenden Sie den PROTOCOL_CL_CLOSE_AF_COMPLETE Typ, wie in diesem Codebeispiel gezeigt:

PROTOCOL_CL_CLOSE_AF_COMPLETE MyClCloseAfComplete;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyClCloseAfComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolAfContext
    )
  {...}

Der PROTOCOL_CL_CLOSE_AF_COMPLETE Funktionstyp wird in der Ndis.h-Headerdatei definiert. Um Fehler genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen, die auf den Funktionstyp PROTOCOL_CL_CLOSE_AF_COMPLETE in der Headerdatei angewendet werden, verwendet 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_annotationsfinden Sie unter Annotating Function Behavior.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe ProtocolClCloseAfComplete (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolClCloseAfComplete (NDIS 5.1)) in Windows XP.
Zielplattform- Fenster
Header- ndis.h (include Ndis.h)
IRQL- <= DISPATCH_LEVEL

Siehe auch

NdisClCloseAddressFamily

NdisClOpenAddressFamilyEx

NdisFreeMemory

NdisFreeToNPagedLookasideList

ProtocolCmCloseAf

ProtocolCmOpenAf-

ProtocolUnbindAdapterEx-