Freigeben über


PROTOCOL_OPEN_ADAPTER_COMPLETE_EX Rückruffunktion (ndis.h)

NDIS ruft die ProtocolOpenAdapterCompleteEx- Funktion eines Protokolltreibers auf, um einen geöffneten Adaptervorgang abzuschließen, für den die NdisOpenAdapterEx-funktion NDIS_STATUS_PENDING zurückgegeben hat.

Note You must declare the function by using the PROTOCOL_OPEN_ADAPTER_COMPLETE_EX type. Weitere Informationen finden Sie im folgenden Abschnitt "Beispiele".
 

Syntax

PROTOCOL_OPEN_ADAPTER_COMPLETE_EX ProtocolOpenAdapterCompleteEx;

void ProtocolOpenAdapterCompleteEx(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] NDIS_STATUS Status
)
{...}

Parameter

[in] ProtocolBindingContext

Ein Handle zu einem Kontextbereich, der vom Protokolltreiber zugewiesen wird. Der Protokolltreiber verwaltet die Kontextinformationen pro Bindung in diesem Kontextbereich. Der Treiber hat diesen Handle an NDIS übergeben, wenn der Treiber NdisOpenAdapterExaufgerufen hat.

[in] Status

Der endgültige Status des geöffneten Vorgangs für den zugrunde liegenden Miniporttreiber. Dieser Statuswert wird NDIS_STATUS_SUCCESS, wenn die Bindung eingerichtet wurde oder ein Fehlerstatus, den der zugrunde liegende Treiber bestimmt.

Rückgabewert

Nichts

Bemerkungen

Die ProtocolOpenAdapterCompleteEx--Funktion ist erforderlich. Ein Protokolltreiber ruft die NdisOpenAdapterEx--Funktion aus der ProtocolBindAdapterEx--Funktion auf. NDIS ruft die ProtocolOpenAdapterCompleteEx-Funktion des Treibers auf, nachdem ein ausstehender Öffnenvorgang abgeschlossen ist.

Wenn ProtocolBindAdapterEx darauf wartet, dass NDIS ProtocolOpenAdapterCompleteEx-aufruft, kann diese Funktion einfach den Status speichern und angeben, dass er aufgerufen wurde (z. B. kann er den ProtocolBindingContext Kontextbereich aktualisieren). Dadurch kann die ProtocolBindAdapterEx--Funktion den Bindungsvorgang abschließen.

Wenn die funktion ProtocolBindAdapterEx noch nicht ausgeführt wurde, kann ProtocolOpenAdapterCompleteEx- die Ressourcen zuordnen, die der Treiber für die Bindung benötigt.

Wenn ProtocolBindAdapterEx NDIS_STATUS_PENDING zurückgegeben wurde, kann ProtocolOpenAdapterCompleteEx- die NdisCompleteBindAdapterEx Funktion zum Abschließen des Bindungsvorgangs. In diesem Fall übergibt ProtocolOpenAdapterCompleteExNdisCompleteBindAdapterEx die BindContext- handle, die NDIS an ProtocolBindAdapterExübergeben. Wenn der parameter Status einen Fehler angibt, kann ProtocolOpenAdapterCompleteEx- Bindungsressourcen freigeben, die in ProtocolBindAdapterExeingerichtet wurden.

NDIS ruft ProtocolOpenAdapterCompleteEx- bei IRQL = PASSIVE_LEVEL auf.

beispiele für

Um eine ProtocolOpenAdapterCompleteEx--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 ProtocolOpenAdapterCompleteEx--Funktion zu definieren, die den Namen "MyOpenAdapterCompleteEx" hat, verwenden Sie den PROTOCOL_OPEN_ADAPTER_COMPLETE_EX Typ, wie in diesem Codebeispiel gezeigt:

PROTOCOL_OPEN_ADAPTER_COMPLETE_EX MyOpenAdapterCompleteEx;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyOpenAdapterCompleteEx(
    NDIS_HANDLE  ProtocolBindingContext,
    NDIS_STATUS  Status
    )
  {...}

Der PROTOCOL_OPEN_ADAPTER_COMPLETE_EX 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 PROTOCOL_OPEN_ADAPTER_COMPLETE_EX 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 in NDIS 6.0 und höher.
Zielplattform- Fenster
Header- ndis.h (include Ndis.h)
IRQL- PASSIVE_LEVEL

Siehe auch

NdisCompleteBindAdapterEx

NdisOpenAdapterEx

ProtocolBindAdapterEx-