Freigeben über


NdisMIndicateStatus-Funktion (ndis.h)

Hinweis NDIS 5. x ist veraltet und wird von NDIS 6 ersetzt. x. Informationen zur neuen NDIS-Treiberentwicklung finden Sie unter Netzwerktreiber ab Windows Vista. Informationen zum Portieren von NDIS 5. x Treiber auf NDIS 6. xfinden Sie unter Portieren von NDIS 5.x-Treibern zu NDIS 6.0.

NdisMIndicateStatus- gibt Änderungen am Status einer NIC zu NDIS-Treibern höherer Ebene an.

Syntax

void NdisMIndicateStatus(
  [in] NDIS_HANDLE MiniportHandle,
  [in] NDIS_STATUS GeneralStatus,
  [in] PVOID       StatusBuffer,
  [in] UINT        StatusBufferSize
);

Parameter

[in] MiniportHandle

Gibt das Handle an, das ursprünglich für MiniportInitialize-eingegeben wurde.

[in] GeneralStatus

Gibt den NDIS_STATUS_ XXX--Wert an, der die allgemeine Änderung des Status für die NIC angibt.

[in] StatusBuffer

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der Daten enthält, die mittelspezifisch sind und vom Wert GeneralStatusabhängig sind. Es gibt detaillierte Informationen zur Änderung des Status an.

[in] StatusBufferSize

Gibt die Größe in Byte des Puffers bei StatusBufferan.

Rückgabewert

Nichts

Bemerkungen

Wenn ein Miniporttreiber NdisMIndicateStatus-aufruft, ruft NDIS die ProtocolStatus-funktion jedes gebundenen Protokolls auf. Dadurch kann ein gebundener Protokolltreiber oder möglicherweise der Konfigurations-Manager die Änderung des Status einer zugrunde liegenden NIC protokollieren oder Korrekturmaßnahmen ergreifen. Ein Protokoll kann z. B. NdisReset-aufrufen, abhängig von der angegebenen NDIS_STATUS_ XXX-.

Wenn ein Miniporttreiber NdisMIndicateStatus- aufruft, um eine Änderung des NIC-Status zu melden, kann NDIS die MiniportReset--Funktion aufrufen, um die NIC in eine funktionierende Bedingung wiederherzustellen. Unter diesen Umständen kann NDIS gebundene Protokolle nur mit NDIS_STATUS_RESET_START und höher mit NDIS_STATUS_RESET_END aufrufen, anstatt mit dem vom Miniporttreiber angegebenen GeneralStatus-.

NdisMIndicateStatus- stellt zwei Informationen bereit:

  • Ein Gesamtstatuswert, der die allgemeine Änderung des Status angibt.
  • Ein bestimmter Grund für die allgemeine Änderung, die netzwerkspezifisch sein kann. Beispielsweise sind Ringeinfügefehler insbesondere für TokenRing-Netzwerke (802.5) vorgesehen, für Ethernet-NICs (802.3) und deren Treiber nicht relevant.

Ein Miniporttreiber kann auch NdisMIndicateStatus- aufrufen, um Probleme anzuzeigen, z. B. Kabel, die versehentlich entfernt und dann erneut eingearbeitet wurden oder ein Ring, der vorübergehend fehlgeschlagen ist. Nehmen wir beispielsweise an, dass beide folgenden Bedingungen auftreten:

  • Der Miniporttreiber ruft NdisMIndicateStatus- mit NDIS_STATUS_RING_STATUS auf.

  • Die StatusBuffer- enthält einen der folgenden Statuswerte:

    • NDIS_RING_LOBE_WIRE_FAULT
    • NDIS_RING_HARD_ERROR NDIS_RING_SIGNAL_LOSS

Nachdem eine solche Änderung des Status mit einem Hinweis signalisiert wurde, bleiben alle zugehörigen Schwellenwerte oder Statistikzähler unverändert.

Ein Miniporttreiber kann NdisMIndicateStatus- im Kontext seiner MiniportISR-, MiniportHalt-oder MiniportShutdown--Funktion nicht aufrufen. Nur ein deserialisierter Miniporttreiber kann NdisMIndicateStatus- im Kontext seiner MiniportInitialize-funktion aufrufen.

Ein Miniporttreiber muss jede Drehsperre freigeben, die sie hält, bevor NdisMIndicateStatus-aufgerufen wird.

Serialisierte Aufrufer von NdisMIndicateStatus- müssen unter IRQL = DISPATCH_LEVEL ausgeführt werden. Deserialisierte Aufrufer von NdisMIndicateStatus- müssen bei IRQL-<= DISPATCH_LEVEL ausgeführt werden.

, der den Verlust und die Wiederherstellung einer Netzwerkverbindung angibt

Wenn ein Miniporttreiber erkennt, dass die Netzwerkverbindung verloren gegangen ist, sollte er NdisMIndicateStatus- mit NDIS_STATUS_MEDIA_DISCONNECT aufrufen. Wenn die Verbindung wiederhergestellt wird, sollte der Miniporttreiber NdisMIndicateStatus- mit NDIS_STATUS_MEDIA_CONNECT aufrufen.

Hinweis 802.11 Miniporttreiber müssen die Medienstatusrichtlinien für drahtlose LANs beim Generieren von Netzwerkverbindungsanzeigen befolgen. Weitere Informationen zu diesen Richtlinien finden Sie unter Medienstatusanzeigen für 802.11 Networks.

802.11 Wireless LAN Miniport Driver Calls to NdisMIndicateStatus

802.11 Wireless LAN (WLAN) Miniporttreiber können verschiedene Hinweise auf die WLAN-Medien machen. Beispielsweise kann der Miniporttreiber einen WLAN-spezifischen Hinweis machen, wenn folgendes auftritt:

  • Der Treiber erkennt, dass sich die empfangene Signalstärke der aktuellen BSS-Zuordnung geändert hat.
  • Der Treiber erkennt einen TKIP MIC-Fehler in einem empfangenen Paket.

Die folgenden Arten von WLAN-spezifischen Indikationen können von 802.11 Miniporttreibern mit NdisMIndicateStatusgemacht werden:

Weitere Informationen zu diesen medienspezifischen Indikationen finden Sie 802.11 Media-Specific Statusanzeigen.

WAN Miniport-Treiberaufrufe an NdisMIndicateStatus

Die meisten WAN-NIC-Treiber geben den Status mit einigen speziellen Statuscodes und Pufferinhalten an. Diese Statusanzeigen werden von WAN-NIC-Treibern generiert, und NDIS-Protokolltreiber, die an einen solchen Miniporttreiber gebunden sind, können diese Indikationen ignorieren. Die ordnungsgemäße Verarbeitung dieser Indikationen führt jedoch in der Regel zu einer verbesserten Leistung für Protokolle und für WAN-NIC-Treiber.

Die folgenden vier Arten von WAN-spezifischen Indikationen können an gebundene Protokolltreiber mit NdisMIndicateStatus-gesendet werden:

  • Schlange stehen
  • Linie nach unten
  • Fragment
  • TAPI-Linienereignis

NDIS_STATUS_WAN_LINE_UP

Ein WAN-Miniporttreiber gibt immer dann an, wenn eine neue Verbindung aktiv wird. Bis zu diesem Zeitpunkt akzeptiert die NIC Frames und lässt sie erfolgreich oder fehlschlagen, aber es ist unwahrscheinlich, dass sie tatsächlich von einem Remoteknoten empfangen werden. Bis zu diesem Zeitpunkt sollten Protokolle ihre Timer reduzieren und die Wiederholungsanzahlen reduzieren, um alle ausgehenden Verbindungsversuche schnell fehlschlagen zu können.

Der WAN-Miniporttreiber macht diesen Hinweis mit NdisMIndicateStatus-, bevor er von der OID_TAPI_GET_ID-Anforderung zurückgegeben wird.

Der Statuscode für die Zeilenanzeige ist NDIS_STATUS_WAN_LINE_UP. Der Puffer bei StatusBuffer- ist als NDIS_MAC_LINE_UP Struktur formatiert.

NDIS_STATUS_WAN_LINE_DOWN

Ein WAN-Miniporttreiber gibt immer dann an, wenn ein Link abläuft. Wenn dies geschieht, sollten gebundene Protokolle ihre Zeitgeber reduzieren und die Wiederholungsanzahl bis zur nächsten Einfügeanzeige verringern.

Der Statuscode für die Zeilenanzeige ist NDIS_STATUS_WAN_LINE_DOWN. Der Puffer bei StatusBuffer- ist als NDIS_MAC_LINE_DOWN Struktur formatiert.

NDIS_STATUS_WAN_FRAGMENT

Ein WAN-Miniporttreiber macht eine Fragmentanzeige, wenn es ein Teilpaket vom Remoteknoten empfängt. In diesem Fall sollte ein gebundenes Protokoll Frames an den Remoteknoten senden, der ihn über diese Situation benachrichtigt, anstatt auf einen Timeout zu warten.

Der Statuscode für die Fragmentanzeige ist NDIS_STATUS_WAN_FRAGMENT. Der Puffer bei StatusBuffer- ist als NDIS_MAC_FRAGMENT Struktur formatiert.

NDISWAN überwacht verworfene Pakete, indem die Anzahl der Fragmentanzeigen auf den einzelnen Verknüpfungen gezählt wird.

NDIS_TAPI_EVENT

Ein WAN-Miniporttreiber muss einen GeneralStatus Wert von NDIS_STATUS_TAPI_INDICATION für TAPI-Statusanzeigen verwenden. Der Puffer bei StatusBuffer- ist als NDIS_TAPI_EVENT Struktur formatiert.

  • Zielplattform: universelle
  • Version: Für NDIS 6.0-Treiber in Windows Vista nicht unterstützt. Verwenden Sie stattdessen NdisMIndicateStatusEx. Unterstützt für NDIS 5.1-Treiber in Windows Vista und Windows XP.

Anforderungen

Anforderung Wert
Header- ndis.h (include Ndis.h)
Library Ndis.lib

Siehe auch