Freigeben über


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 deaktivieren, für die NdisCmDeactivateVc zuvor zurückgegeben NDIS_STATUS_PENDING.

Hinweis Sie müssen die Funktion mithilfe des typs PROTOCOL_CM_DEACTIVATE_VC_COMPLETE 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 kontextbezogenen Kontextbereich eines Anrufmanagers an, in dem der Anrufmanager den Status pro VC verwaltet. Der Aufruf-Manager hat dieses Handle von der ProtocolCoCreateVc-Funktion an NDIS bereitgestellt.

Rückgabewert

Nichts

Bemerkungen

NDIS ruft in der Regel ProtocolCmDeactivateVcComplete- im Kontext des Schließens eines Anrufs des Anrufmanagers im Auftrag eines verbindungsorientierten Clients auf. Der Anruf-Manager ruft in der Regel NdisCmDeactivateVc- aus der ProtocolCmCloseCall--Funktion auf. Wenn NdisCmDeactivateVc NDIS_STATUS_PENDING zurückgibt, ruft NDIS anschließend die ProtocolCmDeactivateVcComplete--Funktion auf.

Wenn der zugrunde liegende verbindungsorientierte Miniporttreiber die VC deaktiviert hat, ruft NDIS ProtocolCmDeactivateVcCompleteauf. Der endgültige Status der Deaktivierung wird in Status gefunden. Mögliche Werte für den endgültigen Status sind enthalten, sind jedoch nicht beschränkt auf:

ProtocolCmDeactivateVcComplete alle Nachbearbeitungsaktivitäten ausführt, um die Deaktivierung einer virtuellen Verbindung abzuschließen, z. B. festlegen von Flags im Zustandsbereich, um anzugeben, dass die Verbindung inaktiv ist oder dynamisch zugeordnete Ressourcen freigibt, die während der AKTIVEN VC verwendet werden.

Der Abschluss der Deaktivierung bedeutet, dass alle Aufrufparameter für die bei der Aktivierung verwendete VC nicht mehr gültig sind. Jede weitere Verwendung des VC ist untersagt, es sei denn, 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 Anrufmanager zuvor NDIS_STATUS_PENDING von der ProtocolCmCloseCall--Funktion zurückgegeben hat und alle Vorgänge zum Schließen des Anrufs abgeschlossen wurden, sollte ProtocolCmDeactivateVcComplete- jetzt NdisCmCloseCallCompleteaufrufen.

beispiele für

Um eine ProtocolCmDeactivateVcComplete--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.

Um beispielsweise eine ProtocolCmDeactivateVcComplete--Funktion zu definieren, die den Namen "MyCmDeactivateVcComplete" hat, verwenden Sie den PROTOCOL_CM_DEACTIVATE_VC_COMPLETE Typ, 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 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_CM_DEACTIVATE_VC_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 ProtocolCmDeactivateVcComplete (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolCmDeactivateVcComplete (NDIS 5.1)) in Windows XP.
Zielplattform- Fenster
Header- ndis.h (include Ndis.h)
IRQL- <= DISPATCH_LEVEL

Siehe auch

MiniportCoDeactivateVc

NdisCmCloseCallComplete

NdisCmDeactivateVc

ProtocolCmCloseCall-