Freigeben über


PROTOCOL_CM_CLOSE_AF Rückruffunktion (ndis.h)

Die ProtocolCmCloseAf-Funktion ist eine erforderliche Funktion, die pro geöffnete Ressourcen für eine Adressfamilie freigibt, die von einem Anruf-Manager unterstützt wird.

Hinweis Sie müssen die Funktion mit dem PROTOCOL_CM_CLOSE_AF-Typ deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

Syntax

PROTOCOL_CM_CLOSE_AF ProtocolCmCloseAf;

NDIS_STATUS ProtocolCmCloseAf(
  [in] NDIS_HANDLE CallMgrAfContext
)
{...}

Parameter

[in] CallMgrAfContext

Gibt das Handle für den Pro-AF-Kontextbereich des Anruf-Managers an, der ursprünglich von der ProtocolCmOpenAf-Funktion des Aufruf-Managers für NDIS bereitgestellt wurde.

Rückgabewert

ProtocolCmCloseAf gibt den status seiner Vorgänge wie folgt zurück:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Gibt an, dass der Anruf-Manager alle Ressourcen erfolgreich freigegeben oder deaktiviert hat, die im Auftrag des verbindungsorientierten Clients zugewiesen werden, der diese instance der Adressfamilie geöffnet hat.
NDIS_STATUS_PENDING
Gibt an, dass die Anforderung zum Schließen des geöffneten instance der Adressfamilie asynchron abgeschlossen wird. Der Anruf-Manager muss aufrufen NdisCmCloseAddressFamilyComplete , wenn alle derartigen Vorgänge abgeschlossen wurden.

Hinweise

ProtocolCmCloseAf gibt alle Ressourcen frei und/oder deaktiviert, die vom Aufruf-Manager in seiner ProtocolCmOpenAf-Funktion zugewiesen wurden. Der Anruf-Manager sollte auch alle anderen Aktionen rückgängig machen, die er im Namen des verbindungsorientierten Clients ausgeführt hat, als die Adressfamilie von diesem Client geöffnet wurde.

Wenn noch offene Anforderungen oder Verbindungen für eine Adressfamilie vorhanden sind, die in CallMgrAfContext gespeichert ist, kann ein Anrufmanager auf die Anforderung eines Clients zum Schließen der Adressfamilie auf eine der folgenden Arten reagieren:

  • Der Anruf-Manager kann die Anforderung mit NDIS_STATUS_NOT_ACCEPTED fehlschlagen.
  • Der Anrufmanager kann NDIS_STATUS_PENDING zurückgeben. Nachdem der Client alle Aufrufe geschlossen und die Registrierung aller SAPs aufgehoben hat, kann der Anruf-Manager die Adressfamilie schließen und NdisCmCloseAddressFamilyComplete oder aufrufen. NdisMCmCloseAddressFamilyComplete , um den Client zu benachrichtigen. Dies ist die bevorzugte Antwort.

Beispiele

Um eine ProtocolCmCloseAf-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 ProtocolCmCloseAf-Funktion mit dem Namen "MyCmCloseAf" zu definieren, verwenden Sie den typ PROTOCOL_CM_CLOSE_AF , wie in diesem Codebeispiel gezeigt:

PROTOCOL_CM_CLOSE_AF MyCmCloseAf;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MyCmCloseAf(
    NDIS_HANDLE  CallMgrAfContext
    )
  {...}

Der PROTOCOL_CM_CLOSE_AF 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_CM_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 für NDIS 6.0- und NDIS 5.1-Treiber (siehe ProtocolCmCloseAf (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolCmCloseAf (NDIS 5.1)) in Windows XP.
Zielplattform Windows
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

NdisCmCloseAddressFamilyComplete

ProtocolCmOpenAf