PROTOCOL_CL_NOTIFY_CLOSE_AF Rückruffunktion (ndis.h)

Die ProtocolClNotifyCloseAf-Funktion benachrichtigt einen CoNDIS-Client, dass der Client die zugeordnete Adressfamilie (AF) schließen soll.

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

Syntax

PROTOCOL_CL_NOTIFY_CLOSE_AF ProtocolClNotifyCloseAf;

NDIS_STATUS ProtocolClNotifyCloseAf(
  [in] NDIS_HANDLE ClientAfContext
)
{...}

Parameter

[in] ClientAfContext

Ein vom Client bereitgestelltes Handle für den Kontextbereich für den zugeordneten AF. Der Client hat diesen Kontextbereich zugeordnet und dieses Handle in seinem Aufruf an NDIS übergeben. NdisClOpenAddressFamilyEx-Funktion .

Rückgabewert

ProtocolClNotifyCloseAf kann eine der folgenden Aktionen zurückgeben:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Der Client hat die Adressfamilie erfolgreich geschlossen.
NDIS_STATUS_PENDING
Der Client verarbeitet diese Anforderung asynchron und ruft die NdisClNotifyCloseAddressFamilyComplete-Funktion , wenn der Close-Vorgang abgeschlossen ist.
NDIS_STATUS_XXX
Der Client hat die Anforderung aus einem treiberbestimmten Grund nicht bestanden.

Hinweise

The Die ProtocolClNotifyCloseAf-Funktion ist für CoNDIS-Clients erforderlich. NDIS ruft ProtocolClNotifyCloseAf auf, wenn ein Anruf-Manager NDIS benachrichtigt, dass die Adressfamilie (AF), die der Parameter ProtocolAfContext angibt, geschlossen werden soll. Als Antwort sollte der Client Folgendes ausführen:

  1. Rufen Sie die NdisClDropParty-Funktion so oft wie nötig auf, bis nur eine einzelne Partei auf jeder virtuellen Multipunktverbindung (Virtual Connection, VC) aktiv bleibt, wenn der Client über aktive Mehrpunktverbindungen verfügt.
  2. Rufen Sie die NdisClCloseCall-Funktion so oft wie nötig auf, um alle Aufrufe zu schließen, die noch geöffnet sind und dem AF zugeordnet sind.
  3. Rufen Sie die NdisClDeregisterSap-Funktion so oft wie nötig auf, um die Registrierung aller Dienstzugriffspunkte (SERVICE Access Points, SAPs), die der Client beim Anruf-Manager registriert hat, aufzuheben.
  4. Rufen Sie die folgenden NdisClCloseAddressFamily-Funktion , um den AF zu schließen.
Der Client kann diese Aktionen asynchron ausführen, indem er NDIS_STATUS_PENDING zurückgibt. Wenn der Client den Aufruf asynchron abschließt, muss er anschließend die NdisClNotifyCloseAddressFamilyComplete-Funktion , wenn der Close-Vorgang abgeschlossen ist. Wenn der Client keine NDIS_STATUS_PENDING zurückgibt, ist der Schließvorgang abgeschlossen, wenn ProtocolClNotifyCloseAf gibt zurück.

NDIS ruft ProtocolClNotifyCloseAf unter IRQL <= DISPATCH_LEVEL auf.

Der Client kann das NdisAfHandle verwenden, während der AF geöffnet ist oder ein Der ProtocolClNotifyCloseAf-Vorgang steht aus. Wird der Die ProtocolClNotifyCloseAf-Funktion gibt NDIS_STATUS_PENDING zurück. Verwenden Sie das Handle im NdisClNotifyCloseAddressFamilyComplete-Aufruf nach Abschluss des Close-Vorgangs.

Beispiele

Um eine ProtocolClNotifyCloseAf-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden 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 ProtocolClNotifyCloseAf-Funktion mit dem Namen "MyClNotifyCloseAf" zu definieren, verwenden Sie den typ PROTOCOL_CL_NOTIFY_CLOSE_AF , wie in diesem Codebeispiel gezeigt:

PROTOCOL_CL_NOTIFY_CLOSE_AF MyClNotifyCloseAf;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MyClNotifyCloseAf(
    NDIS_HANDLE  ProtocolAfContext
    )
  {...}

Der PROTOCOL_CL_NOTIFY_CLOSE_AF 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 PROTOCOL_CL_NOTIFY_CLOSE_AF 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

NdisClCloseAddressFamily

NdisClCloseCall

NdisClDeregisterSap

NdisClDropParty

NdisClNotifyCloseAddressFamilyComplete

NdisClOpenAddressFamilyEx