PROTOCOL_CO_STATUS_EX Rückruffunktion (ndis.h)
Die ProtocolCoStatusEx--Funktion gibt Statusänderungen von zugrunde liegenden verbindungsorientierten Treibern oder von NDIS an.
Syntax
PROTOCOL_CO_STATUS_EX ProtocolCoStatusEx;
void ProtocolCoStatusEx(
[in] NDIS_HANDLE ProtocolBindingContext,
[in] NDIS_HANDLE ProtocolVcContext,
[in] PNDIS_STATUS_INDICATION StatusIndication
)
{...}
Parameter
[in] ProtocolBindingContext
Ein Handle zu einem vom Protokolltreiber zugewiesenen Kontextbereich. 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.
[in] ProtocolVcContext
Ein Handle zu einem vom Protokolltreiber zugewiesenen Kontextbereich, in dem der Protokolltreiber Laufzeitstatusinformationen (Virtual Connection, VC) verwaltet. Wenn die Statusanzeige nicht VC-spezifisch ist, ist dieser Parameter NULL-. Andernfalls hat der Protokolltreiber dieses Handle ursprünglich bereitgestellt, wenn er die NdisCoCreateVc--Funktion oder von der ProtocolCoCreateVc--Funktion aufgerufen hat.
[in] StatusIndication
Ein Zeiger auf eine NDIS_STATUS_INDICATION Struktur, die die Statusinformationen enthält.
Rückgabewert
Nichts
Bemerkungen
NDIS ruft ProtocolCoStatusEx- auf, um einen Protokolltreiber über Änderungen am Status eines zugrunde liegenden CoNDIS-Treibers zu benachrichtigen. Ein NULL- VC-Handle für den ProtocolVcContext Parameter gibt eine Statusänderung an, die nicht für eine VC spezifisch ist. Bei einem nichtNULL- VC-Handle schränkt NDIS die Statusbenachrichtigung auf Clients oder Anrufmanager ein, die dieses VC-Handle gemeinsam nutzen.
NDIS serialisiert Statusanzeigen für jede Protokollbindung. Verwenden Sie zum Ermitteln des Verknüpfungsstatus die Statusanzeigen von zugrunde liegenden Treibern anstelle von OID-Abfragen. Diese Statusanzeigen verbessern die Systemleistung und vermeiden mögliche Rennbedingungen.
NDIS ruft ProtocolCoStatusEx- bei IRQL-<= DISPATCH_LEVEL auf.
beispiele für
Um eine ProtocolCoStatusEx--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 ProtocolCoStatusEx--Funktion zu definieren, die den Namen "MyCoStatusEx" hat, verwenden Sie den PROTOCOL_CO_STATUS_EX Typ, wie in diesem Codebeispiel gezeigt:
PROTOCOL_CO_STATUS_EX MyCoStatusEx;
Implementieren Sie dann Ihre Funktion wie folgt:
_Use_decl_annotations_
VOID
MyCoStatusEx(
NDIS_HANDLE ProtocolBindingContext,
NDIS_HANDLE ProtocolVcContext,
PNDIS_STATUS_INDICATION StatusIndication
)
{...}
Der PROTOCOL_CO_STATUS_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_CO_STATUS_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- | <= DISPATCH_LEVEL (siehe Abschnitt "Hinweise") |