PROTOCOL_STATUS_EX Rückruffunktion (ndis.h)
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, den der Protokolltreiber zugewiesen hat. Der Protokolltreiber verwaltet die Kontextinformationen pro Bindung in diesem Kontextbereich. Der Treiber hat dieses Handle für NDIS bereitgestellt, wenn der Treiber die NdisOpenAdapterEx-Funktion aufgerufen hat.
[in] StatusIndication
Ein Zeiger auf eine NDIS_STATUS_INDICATION-Struktur, die die status Informationen enthält.
Rückgabewert
Keine
Bemerkungen
Ein Aufruf von ProtocolStatusEx benachrichtigt den Protokolltreiber über Änderungen in status eines zugrunde liegenden Treibers.
Um link status zu ermitteln, verwenden Sie anstelle von OID-Abfragen die status Hinweise von zugrunde liegenden Treibern. Diese status Hinweise 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 an, und später, 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. Die NDIS_STATUS_RESET_START Benachrichtigung warnt gebundene Protokolltreiber, solche Anforderungen für die betroffene Bindung zu beenden, bis sie die entsprechende NDIS_STATUS_RESET_END Benachrichtigung erhalten.
NDIS ruft ProtocolStatusEx unter IRQL <= DISPATCH_LEVEL auf.
Beispiele
Um eine ProtocolStatusEx-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden Funktion identifiziert. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. 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 Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.Um beispielsweise eine ProtocolStatusEx-Funktion mit dem Namen "MyStatusEx" zu definieren, verwenden Sie den typ PROTOCOL_STATUS_EX , 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 ist in der Headerdatei Ndis.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzu. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den PROTOCOL_STATUS_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 (einschließlich Ndis.h) |
IRQL | <= DISPATCH_LEVEL |