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 abzuschließen, die sie mit NdisClCloseAddressFamily initiieren.

Hinweis Sie müssen die Funktion mit dem PROTOCOL_CL_CLOSE_AF_COMPLETE-Typ 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 zum Schließen der Adressfamilie an. Dies kann eine der folgenden Sein:

NDIS_STATUS_SUCCESS

Die Adressfamilie wurde geschlossen. Das NdisAfHandle , das die offene Adressfamilie darstellte, die der Client im Bereich ProtocolAfContext gespeichert hat, ist jetzt ungültig.

NDIS_STATUS_FAILURE

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

[in] ProtocolAfContext

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

Rückgabewert

Keine

Bemerkungen

Nachdem sichergestellt wurde, dass er keine ausstehenden VCs und/oder registrierten SAPs in seiner offenen Adressfamilie aufweist, ruft ein Client NdisClCloseAddressFamily auf, um die Zuordnung zwischen sich, 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 Aufruf von NdisClCloseAddressFamily sollte der Client die NdisAfHandle als ungültig betrachten.

Folglich muss der Client über eine ProtocolClCloseAfComplete-Funktion verfügen, die von NDIS aufgerufen wird, wenn der asynchrone Close-AF-Vorgang ausgeführt wird. Wenn der Eingabestatus NDIS_STATUS_SUCCESS ist, kann der Client seinen pro AF-Kontextbereich freigeben.

Beispiele

Um eine ProtocolClCloseAfComplete-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden Funktion identifiziert. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. 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 Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine ProtocolClCloseAfComplete-Funktion mit dem Namen "MyClCloseAfComplete" zu definieren, verwenden Sie den typ PROTOCOL_CL_CLOSE_AF_COMPLETE , 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 ist in der Headerdatei Ndis.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzu. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den PROTOCOL_CL_CLOSE_AF_COMPLETE 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 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 Windows
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

NdisClCloseAddressFamily

NdisClOpenAddressFamilyEx

NdisFreeMemory

NdisFreeToNPagedLookasideList

ProtocolCmCloseAf

ProtocolCmOpenAf

ProtocolUnbindAdapterEx