PROTOCOL_CO_STATUS_EX Rückruffunktion (ndis.h)

Die ProtocolCoStatusEx-Funktion gibt status Änderungen von zugrunde liegenden verbindungsorientierten Treibern oder von NDIS an.

Hinweis Sie müssen die Funktion mit dem PROTOCOL_CO_STATUS_EX-Typ deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

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 für einen vom Protokolltreiber zugewiesenen Kontextbereich. 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] ProtocolVcContext

Ein Handle für einen vom Protokolltreiber zugewiesenen Kontextbereich, in dem der Protokolltreiber Laufzeitstatusinformationen zur virtuellen Verbindung (VC) verwaltet. Wenn die status Angabe nicht VC-spezifisch ist, ist dieser Parameter NULL. Andernfalls hat der Protokolltreiber dieses Handle ursprünglich bereitgestellt, wenn er die NdisCoCreateVc-Funktion oder über seine ProtocolCoCreateVc-Funktion aufgerufen hat.

[in] StatusIndication

Ein Zeiger auf eine NDIS_STATUS_INDICATION-Struktur, die die status Informationen enthält.

Rückgabewert

Keine

Bemerkungen

NDIS ruft ProtocolCoStatusEx auf, um einen Protokolltreiber über Änderungen an der status eines zugrunde liegenden CoNDIS-Treibers zu benachrichtigen. Ein NULL VC-Handle für den ProtocolVcContext-Parameter gibt eine status Änderung an, die nicht spezifisch für eine VC ist. Bei einem VC-Handle ohne NULL beschränkt NDIS die status Benachrichtigung auf Clients oder Anrufmanager, die dieses VC-Handle gemeinsam nutzen.

NDIS serialisiert status Indikationen für jede Protokollbindung. 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 ProtocolCoStatusEx unter IRQL <= DISPATCH_LEVEL auf.

Beispiele

Um eine ProtocolCoStatusEx-Funktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten 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 ProtocolCoStatusEx-Funktion mit dem Namen "MyCoStatusEx" zu definieren, verwenden Sie den typ PROTOCOL_CO_STATUS_EX , 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 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_CO_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 (siehe Abschnitt Hinweise)

Weitere Informationen

NDIS_STATUS_INDICATION

NdisCoCreateVc

NdisOpenAdapterEx

ProtocolCoCreateVc