PROTOCOL_CO_DELETE_VC Rückruffunktion (ndis.h)

Die ProtocolCoDeleteVc-Funktion ist erforderlich. Diese Funktion löscht den Zustand des Clients oder des Aufruf-Managers für eine hergestellte virtuelle Verbindung, die vom ursprünglichen Ersteller dieser Vc geschlossen wird.

Hinweis Sie müssen die Funktion mithilfe des typs PROTOCOL_CO_DELETE_VC deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

Syntax

PROTOCOL_CO_DELETE_VC ProtocolCoDeleteVc;

NDIS_STATUS ProtocolCoDeleteVc(
  [in] NDIS_HANDLE ProtocolVcContext
)
{...}

Parameter

[in] ProtocolVcContext

Gibt das Handle für den Kontextbereich des Client- oder Anruf-Managers pro Vc an. Das Protokoll hat dieses Handle ursprünglich über seine ProtocolCoCreateVc-Funktion bereitgestellt.

Rückgabewert

ProtocolCoDeleteVc kann eine der folgenden Rückgaben:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Das Protokoll hat alle Ressourcen freigegeben oder für die Wiederverwendung vorbereitet, die es ursprünglich für den Nachweis zugewiesen hat.
NDIS_STATUS_NOT_ACCEPTED
Der Vc ist weiterhin aktiv, und das Protokoll verfügt über ausstehende Vorgänge auf dem Vc, sodass er nicht zerstört werden konnte.
NDIS_STATUS_XXX
Fehler beim Löschen des Nachweises für das Protokoll aus einem treiberbestimmten Grund.

Hinweise

ProtocolCoDeleteVc ist der Kehrwert der ProtocolCoCreateVc-Funktion des Treibers. Im Allgemeinen werden alle dynamischen Ressourcen und Strukturen freigegeben, die der Aufruf-Manager oder Client zuvor zugewiesen hat, um Vorgänge für den aktiven Nachweis auszuführen.

Wenn ProtocolCoDeleteVc die Steuerung mit NDIS_STATUS_SUCCESS zurückgibt, wird die NdisVcHandle,die die ProtocolCoCreateVc-Funktion im Bereich unter ProtocolVcContext gespeichert hat, ungültig.

ProtocolCoDeleteVc kann alle treiberbestimmten NDIS_STATUS_XXX zurückgeben, die beim Löschen des Nachweises fehlschlägt, aber es kann keine NDIS_STATUS_PENDING zurückgeben. Aufrufe von ProtocolCoDeleteVc sind von Natur aus synchron.

Beispiele

Um eine ProtocolCoDeleteVc-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der funktion identifiziert, die Sie definieren. 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 ProtocolCoDeleteVc-Funktion mit dem Namen "MyCoDeleteVc" zu definieren, verwenden Sie den typ PROTOCOL_CO_DELETE_VC , wie in diesem Codebeispiel gezeigt:

PROTOCOL_CO_DELETE_VC MyCoDeleteVc;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MyCoDeleteVc(
    NDIS_HANDLE  ProtocolVcContext
    )
  {...}

Der PROTOCOL_CO_DELETE_VC Funktionstyp ist in der Headerdatei Ndis.h 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_CO_DELETE_VC 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 ProtocolCoDeleteVc (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolCoDeleteVc (NDIS 5.1)) in Windows XP.
Zielplattform Windows
Kopfzeile ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

NdisClCloseCall

NdisCmDispatchIncomingCloseCall

NdisCoCreateVc

NdisCoDeleteVc

ProtocolCoCreateVc