PROTOCOL_CM_DEACTIVATE_VC_COMPLETE Rückruffunktion (ndis.h)

Die ProtocolCmDeactivateVcComplete-Funktion ist eine erforderliche Funktion. ProtocolCmDeactivateVcComplete schließt die Verarbeitung einer vom Anruf-Manager initiierten Anforderung ab, dass der zugrunde liegende Miniporttreiber (und NDIS) eine VC deaktiviert, für die NdisCmDeactivateVc zuvor NDIS_STATUS_PENDING zurückgegeben hat.

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

Syntax

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE ProtocolCmDeactivateVcComplete;

void ProtocolCmDeactivateVcComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE CallMgrVcContext
)
{...}

Parameter

[in] Status

Gibt den endgültigen status der Deaktivierung an.

[in] CallMgrVcContext

Gibt das Handle für einen vom Anruf-Manager zugewiesenen Kontextbereich an, in dem der Anruf-Manager seinen status pro VC beibehält. Der Aufruf-Manager hat dieses Handle über seine ProtocolCoCreateVc-Funktion an NDIS bereitgestellt.

Rückgabewert

Keine

Bemerkungen

NDIS ruft in der Regel ProtocolCmDeactivateVcComplete im Kontext auf, in dem der Anruf-Manager einen Aufruf im Namen eines verbindungsorientierten Clients beendet. Der Anruf-Manager ruft in der Regel NdisCmDeactivateVc über seine ProtocolCmCloseCall-Funktion auf. Wenn NdisCmDeactivateVc NDIS_STATUS_PENDING zurückgibt, ruft NDIS anschließend seine ProtocolCmDeactivateVcComplete-Funktion auf.

Das heißt, wenn der zugrunde liegende verbindungsorientierte Miniporttreiber die VC deaktiviert hat, ruft NDIS ProtocolCmDeactivateVcComplete auf. Der letzte status der Deaktivierung finden Sie unter Status . Mögliche Werte für die endgültige status umfassen, sind jedoch nicht beschränkt auf:

ProtocolCmDeactivateVcComplete führt alles aus, was nach der Nachverarbeitung erforderlich ist, um die Deaktivierung einer virtuellen Verbindung abzuschließen, z. B. das Festlegen von Flags im Zustandsbereich, um anzugeben, dass die Verbindung inaktiv ist, oder dynamisch zugeordnete Ressourcen freizugeben, die verwendet werden, während die VC aktiv ist.

Der Abschluss der Deaktivierung bedeutet, dass alle Aufrufparameter für die bei der Aktivierung verwendete VC nicht mehr gültig sind. Jede weitere Verwendung der VC ist untersagt, außer sie mit einem neuen Satz von Aufrufparametern zu reaktivieren.

Anrufmanager sollten alle Ressourcen freigeben, die für die VC-Aktivierung zugewiesen wurden, und die Steuerung so schnell wie möglich zurückgeben. Wenn der Anruf-Manager zuvor NDIS_STATUS_PENDING von seiner ProtocolCmCloseCall-Funktion zurückgegeben hat und alle Vorgänge zum Schließen des Aufrufs abgeschlossen wurden, sollte ProtocolCmDeactivateVcComplete jetzt NdisCmCloseCallComplete aufrufen.

Beispiele

Um eine ProtocolCmDeactivateVcComplete-Funktion zu definieren, müssen Sie zuerst 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 ProtocolCmDeactivateVcComplete-Funktion mit dem Namen "MyCmDeactivateVcComplete" zu definieren, verwenden Sie den typ PROTOCOL_CM_DEACTIVATE_VC_COMPLETE , wie in diesem Codebeispiel gezeigt:

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE MyCmDeactivateVcComplete;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyCmDeactivateVcComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  CallMgrVcContext
    )
  {...}

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

Weitere Informationen

MiniportCoDeactivateVc

NdisCmCloseCallComplete

NdisCmDeactivateVc

ProtocolCmCloseCall