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.
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 |
---|---|
|
Gibt an, dass der Miniporttreiber die Kommunikation über die VC erfolgreich beendet und als nicht verwendbar markiert hat. |
|
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 |