Freigeben über


LE-Aufhängeerkennung

Einige Firmware-Geräte verfügen über einen Watchdog-Timer, der Firmware-Hänger erkennen kann. Einige IHV-Treiber (LE) verfügen über Logik, um zu erkennen, ob die Firmware keinen Fortschritt macht. Die UE ermöglicht es der LE, solche Bedingungen anzugeben.

Die Angabe sollte sich am Adapterport (z. B. portid=0xFFFF) sein. Standardmäßig lösen die Indikationen die LE aus, um das vollständige Wiederherstellungsverfahren zum Zurücksetzen auszuführen– diagnosen, Debuginformationen sammeln und PLDR anfordern.

Wenn der LE- oder Firmware-Watchdog-Timer erkennt, dass die Firmware zum Stillstand kam, sind die Erwartungen an die UE wie folgt.

  1. Wenn in D0,

    1. Die LE gibt NDIS_STATUS_WDI_INDICATION_FIRMWARE_STALLED an.
    2. Bei der Rückgabe von der Anzeige gibt die LE (falls vorhanden) den blockierten WDI-Befehl zurück.
    3. Die UE startet das RR-Verfahren (Reset Recovery).
  2. Wenn in Dx, kann dies nur mit erkanntem Firmware-Stillstand passieren.

    1. Die Firmware löst einen Wake-Interrupt aus.
    2. Gibt beim Empfangen eines D0-Befehls den Aktivierungsgrund an, aus dem die Firmware zum Stillstand kam.
    3. Nach der Rückgabe der D0 WDI-OID gibt die LE NDIS_STATUS_WDI_INDICATION_FIRMWARE_STALLED an.
    4. Beenden Sie das Verfahren wie in D0: 1a, 1b und 1c.

wdi le Hang-Erkennung.

Abhangerkennung in Dx

Es ist möglich, dass die Firmware den Fortschritt in Dx beendet. In diesem Fall ist Dx D3Hot für PCIe NIC und D2 für USB und SDIO. Die NIC ist bewaffnet, um die Zugriffspunktzuordnung autonom zu aktivieren oder NLO zu scannen, falls nicht zugeordnet.

Wenn sich die NIC in Dx befindet, wird die Kommunikation mit dem Host blockiert, da sich der Bus im Ausgeschaltetzustand befinden könnte. Daher ist die LE nicht in der Lage, verzögerte Firmware zu erkennen. Die Firmware selbst muss die Bedingung erkennen und die Reaktivierungslinie auslösen (wenn der Aktivierungsteil des Codes noch aktiv ist), um den Stapel indirekt über ACPI oder Busabschluss zu D0 zu bringen, NDIS wait_wake_irp. Aus diesem Grund legt NDIS D0 auf die NIC fest.

Die Firmware stellt die Aktivierung für eine solche Bedingung fest. Die LE sollte einen Aktivierungsgrund für den Firmware-Stillstand angeben. Der Aktivierungsgrund WDI_WAKE_REASON_CODE_FIRMWARE_STALLED wird als Aufzählung mit den anderen Aktivierungsgründen definiert.

Damit das Zurücksetzen der Wiederherstellung in diesem Szenario funktioniert, müssen mindestens zwei Teile der Firmware weiterhin funktionieren.

  1. Der Code zur Erkennung von Aufhängen.
  2. Der Code, um den Aktivierungs-Interrupt zu bestätigen.

Wenn beides fehlt, weiß die Hostseite nicht, ob die Firmware blockiert ist und RR nicht auftritt. Dieses Szenario ist nicht Teil des Entwurfsziels.

wdi-Hangerkennung in dx.

Vom Betriebssystemmodul ausgelöste Wiederherstellung zum Zurücksetzen

Dies ist informal für IHVs. Zusätzlich zu den erkannten UE- und LE-Hängen können andere Betriebssystemkomponenten Hänger erkennen und/oder die UE auslösen, um die Prozedur zum Zurücksetzen der Wiederherstellung aufzurufen. Derzeit kann die wlansvc-Komponente des Benutzermodus in Windows 10 eine Wiederherstellung zurücksetzen auf UE anfordern, wenn sie eine Verbindung mit Internetkonnektivität erkennt und anschließend die Möglichkeit verliert, auf einen DNS-Server zuzugreifen, ohne die Zuordnung für einige Zeit zu trennen. In Zukunft findet Microsoft möglicherweise weitere Fälle, um eine Reset Recovery auszulösen, um die Endbenutzerfreundlichkeit zu verbessern.

NDIS_STATUS_WDI_INDICATION_FIRMWARE_STALLED

WDI_TLV_INDICATION_WAKE_REASON