PROTOCOL_OPEN_ADAPTER_COMPLETE_EX Rückruffunktion (ndis.h)
NDIS ruft die ProtocolOpenAdapterCompleteEx-Funktion eines Protokolltreibers auf, um einen offenen Adaptervorgang abzuschließen, für den die NdisOpenAdapterEx-Funktion NDIS_STATUS_PENDING zurückgegeben hat.
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 zugeordnet wird. Der Protokolltreiber verwaltet die Kontextinformationen pro Bindung in diesem Kontextbereich. Der Treiber hat dieses Handle für NDIS bereitgestellt, wenn der Treiber NdisOpenAdapterEx aufgerufen hat.
[in] Status
Die letzte status des Öffnenvorgangs für den zugrunde liegenden Miniporttreiber. Dieser status Wert ist NDIS_STATUS_SUCCESS, wenn die Bindung eingerichtet wurde oder ein Fehler status, den der zugrunde liegende Treiber ermittelt.
Rückgabewert
Keine
Bemerkungen
Die ProtocolOpenAdapterCompleteEx-Funktion ist erforderlich. Ein Protokolltreiber ruft die NdisOpenAdapterEx-Funktion aus seiner ProtocolBindAdapterEx-Funktion auf. NDIS ruft die ProtocolOpenAdapterCompleteEx-Funktion des Treibers auf, nachdem ein ausstehender Öffnenvorgang abgeschlossen wurde.
Wenn ProtocolBindAdapterEx darauf wartet, dass NDIS ProtocolOpenAdapterCompleteEx aufruft, kann diese Funktion einfach die status speichern und angeben, dass sie aufgerufen wurde (z. B. kann sie den Kontextbereich ProtocolBindingContext aktualisieren). Dadurch kann die ProtocolBindAdapterEx-Funktion den Bindungsvorgang abschließen.
Wenn die ProtocolBindAdapterEx-Funktion dies noch nicht getan hat, kann ProtocolOpenAdapterCompleteEx die Ressourcen zuordnen, die der Treiber für die Bindung benötigt.
Wenn ProtocolBindAdapterEx NDIS_STATUS_PENDING zurückgegeben hat, kann ProtocolOpenAdapterCompleteEx die aufrufen. NdisCompleteBindAdapterEx-Funktion , um den Bindungsvorgang abzuschließen. In diesem Fall übergibt ProtocolOpenAdapterCompleteExNdisCompleteBindAdapterEx das BindContext-Handle , das NDIS an ProtocolBindAdapterEx übergeben hat. Wenn der Status-Parameter auf einen Fehler hinweist, kann ProtocolOpenAdapterCompleteEx Bindungsressourcen freigeben, die in ProtocolBindAdapterEx eingerichtet wurden.
NDIS ruft ProtocolOpenAdapterCompleteEx unter IRQL = PASSIVE_LEVEL auf.
Beispiele
Um eine ProtocolOpenAdapterCompleteEx-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden Funktion identifiziert. Windows bietet eine Reihe von Funktionstypen für Treiber. 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 Voraussetzung für das Schreiben von Treibern für das Windows-Betriebssystem.Wenn Sie beispielsweise eine ProtocolOpenAdapterCompleteEx-Funktion mit dem Namen "MyOpenAdapterCompleteEx" definieren möchten, verwenden Sie den typ PROTOCOL_OPEN_ADAPTER_COMPLETE_EX , 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 ist in der Headerdatei Ndis.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, müssen Sie der Funktionsdefinition die anmerkung Use_decl_annotations hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den PROTOCOL_OPEN_ADAPTER_COMPLETE_EX 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 in NDIS 6.0 und höher. |
Zielplattform | Windows |
Kopfzeile | ndis.h (include Ndis.h) |
IRQL | PASSIVE_LEVEL |