MINIPORT_CO_DEACTIVATE_VC Rückruffunktion (ndis.h)

Die MiniportCoDeactivateVc-Funktion ist für verbindungsorientierte Miniports erforderlich. MiniportCoDeactivateVc wird von NDIS aufgerufen, um anzugeben, dass eine VC als unbrauchbar markiert wird.

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

Syntax

MINIPORT_CO_DEACTIVATE_VC MiniportCoDeactivateVc;

NDIS_STATUS MiniportCoDeactivateVc(
  [in] NDIS_HANDLE MiniportVcContext
)
{...}

Parameter

[in] MiniportVcContext

Geben Sie das Handle für einen vom Miniporttreiber zugewiesenen Kontextbereich an, in dem der Miniporttreiber Zustandsinformationen pro VC verwaltet. Der Miniporttreiber hat dieses Handle über seine MiniportCoCreateVc-Funktion für NDIS bereitgestellt.

Rückgabewert

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Gibt an, dass der Miniporttreiber die Kommunikation über die VC erfolgreich beendet und als nicht verwendbar markiert hat.
NDIS_STATUS_PENDING
Gibt an, dass der Miniporttreiber die Anforderung zum asynchronen Anhalten des VC abschließt. Wenn der Miniporttreiber das Anhalten der VC abgeschlossen hat, muss er dann aufrufen. NdisMCoDeactivateVcComplete signalisiert NDIS, dass dieser Vorgang abgeschlossen wurde.

Hinweise

MiniportCoDeactivateVc kommuniziert mit seinem Netzwerkadapter, um die gesamte Kommunikation über diese VC zu beenden (d. h. das Deprogrammieren von Empfangs- oder Sendepuffern auf dem Adapter). Der Miniporttreiber sollte auch den VC und seinen Kontextbereich als inaktiv kennzeichnen, um eine weitere Kommunikation über die VC zu verhindern.

Zwischen Aufrufen von MiniportCoActivateVc und MiniportCoDeactivateVc besteht keine 1:1-Beziehung. Während NDIS MiniportCoActivateVc auf einer einzelnen VC mehrmals aufrufen kann, wird nur ein Aufruf von MiniportCoDeactivateVc ausgeführt, um eine virtuelle Verbindung herunterzufahren. Beispielsweise kann eine VC für verschiedene Aufrufe wiederverwendet werden, die möglicherweise mehrere Aufrufe von MiniportCoActivateVc verursachen.

Beispiele

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

MINIPORT_CO_DEACTIVATE_VC MyCoDeactivateVc;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MyCoDeactivateVc(
    NDIS_HANDLE  MiniportVcContext
    )
  {...}

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

Weitere Informationen

MiniportCoActivateVc

NdisMCoDeactivateVcComplete