Freigeben über


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 mithilfe des MINIPORT_CO_ACTIVATE_VC Typs 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 den Handle für einen kontextbezogenen Miniporttreiberbereich an, in dem der Miniporttreiber den Zustand pro VC verwaltet. Der Miniporttreiber hat diesen Handle von der MiniportCoCreateVc--Funktion an NDIS geliefert.

[in, out] CallParameters

Gibt die Aufrufparameter an, wie vom Anruf-Manager angegeben, 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 eines VC abschließt. Wenn der Miniporttreiber seine Vorgänge abgeschlossen hat, muss er anrufen. NdisMCoActivateVcComplete.
NDIS_STATUS_INVALID_DATA
Gibt an, dass die bei CallParameters angegebenen Aufrufparameter für den Medientyp, den dieser Miniporttreiber unterstützt, ungültig oder unzulässig sind.
NDIS_STATUS_RESOURCES
Gibt an, dass der Miniporttreiber den VC nicht aktivieren konnte, da er nicht alle erforderlichen Ressourcen zuordnen konnte, die der Miniporttreiber benötigt, um Zustandsinformationen über die aktive VC zu verwalten.

Bemerkungen

Der Miniporttreiber muss die Aufrufparameter für diese VC überprüfen, wie in CallParametersangegeben, um sicherzustellen, dass der Adapter den angeforderten Anruf unterstützen kann. Wenn die angeforderten Aufrufparameter nicht erfüllt werden können, sollte der Miniporttreiber die Anforderung mit NDIS_STATUS_INVALID_DATA nicht bestehen.

MiniportCoActivateVc- kann für eine einzelne VC mehrmals 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 vom Adapter benötigt wird, um die Anforderung zu erfüllen. Wenn die angegebenen Aufrufparameter jedoch nicht festgelegt werden können, muss MiniportCoActivateVc- den VC in einem verwendbaren Zustand belassen, da der verbindungsorientierte Client oder ein Anrufmanager weiterhin Daten mit den älteren Anrufparametern senden oder empfangen kann.

Wenn die ROUND_UP_FLOW- oder ROUND_DOWN_FLOW-Flags in der Aufrufparameterstruktur bei CallParameters->MediaParameters->Flagsfestgelegt werden, wurde der Miniporttreiber aufgefordert, die tatsächliche Flussrate des VC zurückzugeben, nachdem die Flussrate entsprechend der festgelegten Kennzeichnung gerundet wurde. Wenn der Miniport-Treiber einen der Aufrufparameter ändert, da diese Flags festgelegt wurden, muss er die tatsächlichen Aufrufparameter zurückgeben, die für die VC bei CallParametersverwendet 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 vorzubereiten (d. h. Programmierpuffer).

beispiele für

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

Siehe auch

MiniportCoCreateVc

MiniportCoDeactivateVc

NdisMCoActivateVcComplete