MINIPORT_CO_ACTIVATE_VC Rückruffunktion (ndis.h)

Die MiniportCoActivateVc-Funktion ist für verbindungsorientierte Miniports erforderlich. MiniportCoActivateVc wird von NDIS aufgerufen, um dem Miniporttreiber anzugeben, dass eine virtuelle Verbindung aktiviert wird.

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

Syntax

MINIPORT_CO_ACTIVATE_VC MiniportCoActivateVc;

NDIS_STATUS MiniportCoActivateVc(
  [in]      NDIS_HANDLE MiniportVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parameter

[in] MiniportVcContext

Gibt das Handle für einen vom Miniporttreiber zugewiesenen Kontextbereich an, in dem der Miniporttreiber seinen VC-Status beibehält. Der Miniporttreiber hat dieses Handle über seine MiniportCoCreateVc-Funktion für NDIS bereitgestellt.

[in, out] CallParameters

Gibt die Vom Aufruf-Manager angegebenen Aufrufparameter an, die für diese VC eingerichtet werden sollen. Bei der Ausgabe gibt der Miniporttreiber geänderte Aufrufparameter zurück, wenn bestimmte Flags in der CO_CALL_PARAMETERS-Struktur festgelegt sind.

Rückgabewert

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Gibt an, dass die VC erfolgreich aktiviert wurde.
NDIS_STATUS_PENDING
Gibt an, dass der Miniporttreiber die Anforderung zum asynchronen Aktivieren einer VC abschließt. Wenn der Miniporttreiber seine Vorgänge abgeschlossen hat, muss er aufrufen. NdisMCoActivateVcComplete.
NDIS_STATUS_INVALID_DATA
Gibt an, dass die unter CallParameters angegebenen Aufrufparameter für den Medientyp, den dieser Miniporttreiber unterstützt, ungültig oder ungültig sind.
NDIS_STATUS_RESOURCES
Gibt an, dass der Miniporttreiber die VC nicht aktivieren konnte, da er nicht alle erforderlichen Ressourcen zuordnen konnte, die der Miniporttreiber zum Verwalten von Zustandsinformationen über die aktive VC benötigt.

Hinweise

Der Miniporttreiber muss die Aufrufparameter für diese VC überprüfen, wie in CallParameters angegeben, um zu überprüfen, ob der Adapter den angeforderten Aufruf unterstützen kann. Wenn die angeforderten Aufrufparameter nicht erfüllt werden können, sollte der Miniporttreiber die Anforderung mit NDIS_STATUS_INVALID_DATA.

MiniportCoActivateVc kann für eine einzelne VC mehrfach aufgerufen werden, um die Aufrufparameter für einen bereits aktiven Aufruf zu ändern. Bei jedem Aufruf sollte der Miniporttreiber die Parameter überprüfen und jede Verarbeitung durchführen, die für den Adapter erforderlich ist, um die Anforderung zu erfüllen. Wenn die angegebenen Aufrufparameter jedoch nicht festgelegt werden können, muss MiniportCoActivateVc die VC in einem verwendbaren Zustand belassen, da der verbindungsorientierte Client oder ein Anruf-Manager weiterhin Daten mit den älteren Anrufparametern senden oder empfangen kann.

Wenn die ROUND_UP_FLOW- oder ROUND_DOWN_FLOW-Flags in der Aufrufparameterstruktur unter CallParameters-MediaParameters-Flags>> festgelegt sind, wurde der Miniporttreiber aufgefordert, die tatsächliche Flussrate der VC zurückzugeben, nachdem die Flussrate entsprechend dem entsprechenden festgelegten Flag gerundet wurde. Wenn der Miniporttreiber einen der Aufrufparameter ändert, weil diese Flags festgelegt wurden, muss er die tatsächlichen Aufrufparameter zurückgeben, die für die VC unter CallParameters verwendet werden.

Wenn die Aufrufparameter akzeptabel sind, kommuniziert MiniportCoActivateVc bei Bedarf mit dem Adapter, um den Adapter für den Empfang oder die Übertragung von Daten über die virtuelle Verbindung (d. h. Programmieren von Empfangspuffern) vorzubereiten.

Beispiele

Um eine MiniportCoActivateVc-Funktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten 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 MiniportCoActivateVc-Funktion mit dem Namen "MyCoActivateVc" zu definieren, verwenden Sie den typ MINIPORT_CO_ACTIVATE_VC , wie in diesem Codebeispiel gezeigt:

MINIPORT_CO_ACTIVATE_VC MyCoActivateVc;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MyCoActivateVc(
    NDIS_HANDLE  MiniportVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

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

Weitere Informationen

MiniportCoCreateVc

MiniportCoDeactivateVc

NdisMCoActivateVcComplete