PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX Rückruffunktion (ndis.h)
NDIS ruft die ProtocolCloseAdapterCompleteEx- Funktion eines Protokolltreibers auf, um einen Schließen-Adaptervorgang abzuschließen, für den die NdisCloseAdapterEx-Funktion NDIS_STATUS_PENDING zurückgegeben wurde.
Syntax
PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX ProtocolCloseAdapterCompleteEx;
void ProtocolCloseAdapterCompleteEx(
[in] NDIS_HANDLE ProtocolBindingContext
)
{...}
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 die NdisOpenAdapterEx--Funktion aufgerufen hat.
Rückgabewert
Nichts
Bemerkungen
ProtocolCloseAdapterCompleteEx ist eine erforderliche Funktion.
Wenn ProtocolUnbindAdapterEx- auf den Aufruf ProtocolCloseAdapterCompleteEx-wartet, kann diese Funktion einfach angeben, dass sie aufgerufen und zurückgegeben wurde (z. B. aktualisiert sie den ProtocolBindingContext Kontextbereich). Dadurch kann die ProtocolCloseAdapterCompleteEx--Funktion den nicht gebundenen Vorgang abschließen.
Nachdem der Protokolltreiber die NdisCloseAdapterEx--Funktion aufgerufen hat, ist die NdisBindingHandle- handle, dass die zurückgegebene NdisOpenAdapterEx- funktion nicht mehr gültig ist. Daher können ProtocolCloseAdapterCompleteEx- keine Ndis-Xxx--Funktionen aufrufen, die dieses Handle als Parameter erfordern.
Wenn die ProtocolUnbindAdapterEx--Funktion hat dies noch nicht getan, ProtocolCloseAdapterCompleteEx- kann die Ressourcen freigeben, die der Protokolltreiber für E/A-Vorgänge pro Bindungsnetzwerk zugewiesen hat.
If ProtocolUnbindAdapterEx returned NDIS_STATUS_PENDING and saved the UnbindContext handle in the context area at ProtocolBindingContext, ProtocolCloseAdapterCompleteEx can call the NdisCompleteUnbindAdapterEx Funktion, um den Vorgang zum Aufheben der Verbindung abzuschließen. Daher sollte ProtocolCloseAdapterCompleteEx- den Kontextbereich erst freigeben, nachdem er NdisCompleteUnbindAdapterExaufgerufen hat.
NDIS ruft ProtocolCloseAdapterCompleteEx- bei IRQL = PASSIVE_LEVEL auf.
beispiele für
Um eine ProtocolCloseAdapterCompleteEx--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 ProtocolCloseAdapterCompleteEx--Funktion zu definieren, die den Namen "MyCloseAdapterCompleteEx" hat, verwenden Sie den PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX Typ, wie in diesem Codebeispiel gezeigt:
PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX MyCloseAdapterCompleteEx;
Implementieren Sie dann Ihre Funktion wie folgt:
_Use_decl_annotations_
VOID
MyCloseAdapterCompleteEx(
NDIS_HANDLE ProtocolBindingContext
)
{...}
Der PROTOCOL_CLOSE_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_CLOSE_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 |