Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ProtocolStatusEx--Funktion gibt Statusänderungen von zugrunde liegenden verbindungslosen Treibern oder NDIS an.
Syntax
PROTOCOL_STATUS_EX ProtocolStatusEx;
void ProtocolStatusEx(
[in] NDIS_HANDLE ProtocolBindingContext,
[in] PNDIS_STATUS_INDICATION StatusIndication
)
{...}
Parameter
[in] ProtocolBindingContext
Ein Handle für einen Kontextbereich, dem der Protokolltreiber zugewiesen wurde. 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] StatusIndication
Ein Zeiger auf eine NDIS_STATUS_INDICATION Struktur, die die Statusinformationen enthält.
Rückgabewert
Nichts
Bemerkungen
Ein Aufruf von ProtocolStatusEx benachrichtigt den Protokolltreiber über Änderungen am Status eines zugrunde liegenden Treibers.
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 die ProtocolStatusEx- Funktion aller gebundenen Protokolltreiber auf, wenn ein zugrunde liegender Treiber eine NIC zurückgesetzt. Zuerst gibt NDIS den NDIS_STATUS_RESET_START-Code und später an, wenn der Zurücksetzungsvorgang abgeschlossen ist, gibt NDIS den NDIS_STATUS_RESET_END Code an.
NDIS akzeptiert keine Sendeanforderungen und OID-Anforderungen für einen Miniportadapter, während ein Zurücksetzungsvorgang ausgeführt wird, warnt die NDIS_STATUS_RESET_START-Benachrichtigung gebundene Protokolltreiber, um solche Anforderungen für die betroffene Bindung zu beenden, bis sie die entsprechende NDIS_STATUS_RESET_END-Benachrichtigung erhalten.
NDIS ruft ProtocolStatusEx- bei IRQL-<= DISPATCH_LEVEL auf.
beispiele für
Um eine ProtocolStatusEx--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 ProtocolStatusEx--Funktion zu definieren, die den Namen "MyStatusEx" hat, verwenden Sie den PROTOCOL_STATUS_EX Typ, wie in diesem Codebeispiel gezeigt:
PROTOCOL_STATUS_EX MyStatusEx;
Implementieren Sie dann Ihre Funktion wie folgt:
_Use_decl_annotations_
VOID
MyStatusEx(
NDIS_HANDLE ProtocolBindingContext,
PNDIS_STATUS_INDICATION StatusIndication
)
{...}
Der PROTOCOL_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 PROTOCOL_STATUS_EX Funktionstyp 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 |