MINIPORT_CO_CREATE_VC Rückruffunktion (ndis.h)

Die MiniportCoCreateVc-Funktion ist für verbindungsorientierte Miniports erforderlich. MiniportCoCreateVc wird von NDIS aufgerufen, um dem Miniporttreiber anzugeben, dass eine neue VC erstellt wird.

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

Syntax

MINIPORT_CO_CREATE_VC MiniportCoCreateVc;

NDIS_STATUS MiniportCoCreateVc(
  [in]  NDIS_HANDLE MiniportAdapterContext,
  [in]  NDIS_HANDLE NdisVcHandle,
  [out] PNDIS_HANDLE MiniportVcContext
)
{...}

Parameter

[in] MiniportAdapterContext

Gibt das Handle für einen vom Miniporttreiber zugewiesenen Kontextbereich an, in dem der Miniporttreiber Zustandsinformationen zu diesem instance des Adapters verwaltet. Der Miniporttreiber hat dieses Handle für NDIS bereitgestellt, indem er aufruft. NdisMSetMiniportAttributes aus MiniportInitializeEx-Funktion .

[in] NdisVcHandle

Gibt einen von NDIS bereitgestellten Handle an, der die zu erstellende VC eindeutig identifiziert. Dieses Handle ist für den Miniporttreiber undurchsichtig und für die Verwendung der NDIS-Bibliothek reserviert.

[out] MiniportVcContext

Gibt in der Ausgabe ein Handle für einen vom Miniporttreiber bereitgestellten Kontextbereich an, in dem der Miniporttreiber den Zustand über die VC verwaltet.

Rückgabewert

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Gibt an, dass der Miniporttreiber alle erforderlichen Ressourcen erfolgreich zugeordnet und sich für die Verarbeitung von Anforderungen für die neu erstellte VC vorbereitet hat.
NDIS_STATUS_RESOURCES
Gibt an, dass der Anruf-Manager keine dynamisch zugeordneten Ressourcen abrufen konnte, die für den Betrieb mit der neuen VC erforderlich sind.

Hinweise

MiniportCoCreateVc muss als synchrone Funktion geschrieben werden und kann unter keinen Umständen NDIS_STATUS_PENDING zurückgeben, ohne einen systemweiten Fehler zu verursachen.

MiniportCoCreateVc weist alle erforderlichen Ressourcen zu, die der Miniporttreiber benötigt, um Zustandsinformationen zur VC zu verwalten. Die Ressourcen können Speicherpuffer, Ereignisse, Datenstrukturen und andere ähnliche Ressourcen umfassen.

Nach der Zuordnung aller erforderlichen Ressourcen sollte der Miniporttreiber die Ressourcen in einen nutzbaren Zustand initialisieren und einen Zeiger auf den Zustandsbereich in MiniportVcContext zurückgeben. Das Handle wird festgelegt, indem das Handle dedeferenciert und ein Zeiger auf den Zustandspuffer als Wert des Handles gespeichert wird. Beispiel:

*MiniportVcContext = SomeBuffer;

Miniporttreiber müssen das Handle in der VC( NdisVcHandle) in ihrem Zustandsbereich speichern, da es sich um einen erforderlichen Parameter für andere NDIS-Bibliotheksroutinen handelt, die anschließend vom Miniporttreiber aufgerufen werden.

Beispiele

Um eine MiniportCoCreateVc-Funktion zu definieren, müssen Sie zuerst 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 MiniportCoCreateVc-Funktion mit dem Namen "MyCoCreateVc" zu definieren, verwenden Sie den typ MINIPORT_CO_CREATE_VC , wie in diesem Codebeispiel gezeigt:

MINIPORT_CO_CREATE_VC MyCoCreateVc;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MyCoCreateVc(
    NDIS_HANDLE  MiniportAdapterContext,
    NDIS_HANDLE  NdisVcHandle,
    PNDIS_HANDLE  MiniportVcContext
    )
  {...}

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

Weitere Informationen

MiniportInitializeEx

NdisMSetMiniportAttributes