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.
Bluetooth-Funkzurücksetzung und -wiederherstellung sind eine Technologie in Windows 10, Version 1803 und höher, die einen robusten Rücksetzungs- und Wiederherstellungsmechanismus für Bluetooth-Radios eingeführt. Mit diesem Mechanismus können Bluetooth-Funkgeräte von Hardwarefehlern wiederhergestellt werden, die zu Fehlfunktionen, Verbindungsverlusten oder nicht reagierenden Befehlen führen. Ziel ist es, das Funkgerät automatisch wiederherzustellen und die Benutzerfreundlichkeit nahtlos zu machen und die Wahrscheinlichkeit zu verringern, dass ein Systemneustart erforderlich ist.
Bluetooth-Funkzurücksetzung und -wiederherstellung können mit oder ohne Firmwareabhängigkeiten implementiert werden. Hardwarepartner können die softwarebasierten Zurücksetzungsmechanismen auf allen Windows-PCs mit unterstützten Zurücksetzungsmechanismen auf Geräte- oder Firmwareebene erweitern, um die Wahrscheinlichkeit einer erfolgreichen Wiederherstellung zu erhöhen.
Wichtig
Dieses Thema richtet sich an Entwickler. Wenn ein Kunde Bluetooth-Probleme hat, finden Sie Informationen zum Beheben von Bluetooth-Problemen in Windows 10.
Bluetooth-Zurücksetzungs- und Wiederherstellungsszenarien
Es gibt drei allgemeine Kategorien von Problemen, bei denen das Zurücksetzen und die Wiederherstellung initiiert werden:
Fehler bei der Busenumeration: Das Radio schlägt die Aufzählung oder erneute Aufzählung durch den zugrunde liegenden Bus (in der Regel USB oder UART) fehl, wie durch einen sichtbaren fehlgeschlagenen Zustand (gelber Knall) in Geräte-Manager angegeben, was symptomatisch für zugrunde liegende Hardwarefehler sein kann.
Fehler bei der Treiberenumeration: Das Bluetooth-Funkgerät befindet sich nach erfolgreicher Aufzählung durch den zugrunde liegenden Bus in einem fehlerhaften Zustand. Dieser Fehlerzustand tritt in der Regel auf, wenn der Treiberstapel für das Funkgerät aufgebaut wird. Wenn beispielsweise ein Filter- oder Funktionstreiber auf dem Bluetooth-Funkgeräteknoten installiert ist. Fehler können auftreten, wenn bei einem oder mehreren Startvorgängen ein Fehler auftritt und dadurch ein PnP-Fehler gemeldet wird. Ein Beispiel für einen solchen Vorgang könnte ein Firmwaredownload auf das Gerät sein.
Fehler bei Nichtenumeration: Das Gerät befindet sich nicht in einem fehlerhaften Zustand, ist andernfalls nicht funktionsfähig, wie vom Treiberstapel bestimmt. Diese Fehler befinden sich außerhalb des Enumerationspfads und können allgemeine kritische transportspezifische Fehler oder gerätespezifische Fehler sein, z. B. einen katastrophalen Firmwarefehler. Die folgenden Bluetooth-Zurücksetzungs- und Wiederherstellungsmechanismen werden in diesen Fällen verwendet.
Zurücksetzen und Wiederherstellungsmechanismen
Obwohl es unterschiedliche Ansätze zum Wiederherstellen aus einem fehlgeschlagenen Zustand gibt, verwendet Bluetooth einen standardisierten ACPI-basierten Wiederherstellungsmechanismus, um zu versuchen, das Funkgerät in einen Funktionierenden Zustand wiederherzustellen.
GUID_DEVICE_RESET_INTERFACE_STANDARD definiert zwei Zurücksetzungsebenen. Die Zurücksetzungsmechanismen funktionieren nur für interne Geräte , sodass extern austauschbare Bluetooth-Funkgeräte wie Dongles nicht unterstützt werden. Die Zurücksetzungsmechanismen erfordern Unterstützung sowohl in Windows (in der Regel vom Funktionstreiberstapel) als auch die zugrunde liegende Firmware (in der Regel im ACPI-BIOS), um die Zurücksetzung tatsächlich auszuführen. Der tatsächliche Rücksetzungsmechanismus ist systemspezifisch.
Ebene zurücksetzen | Implementierung |
---|---|
Zurücksetzen auf Funktionsebene (FLDR) | Der Zurücksetzungsvorgang ist auf ein bestimmtes Gerät beschränkt und für andere Geräte nicht sichtbar. Es gibt keine erneute Aufzählung. Funktionstreiber müssen davon ausgehen, dass die Hardware nach dem Vorgang an den ursprünglichen Zustand zurückgegeben wurde. Der zwischengeschaltete Zustand wird nicht beibehalten. |
Gerätezurücksetzung auf Plattformebene (PLDR) | Der Rücksetzungsvorgang wirkt sich auf ein bestimmtes Gerät und alle anderen Geräte aus, die über die gleiche Netzschiene oder Rücksetzungsleitung mit ihr verbunden sind. Der Rücksetzungsvorgang bewirkt, dass das Gerät vom Bus fehlt und erneut aufgezählt wird. Diese Art der Zurücksetzung wirkt sich am stärksten auf das System aus, da alle Geräte, die die Ressource gemeinsam nutzen, wieder in ihren ursprünglichen Zustand zurückkehren. |
Zur Unterstützung von FLDR muss eine __RST Methode innerhalb des Gerätebereichs definiert sein, wie in der ACPI-Firmware beschrieben: Zurücksetzen auf Funktionsebene.
Um PLDR zu unterstützen, muss eine __RST or__PR3 Methode unter dem Gerätebereich definiert sein, wie in ACPI-Firmware beschrieben: Zurücksetzen auf Plattformebene. Wenn eine PR3-Methode verwendet wird, verwendet ACPI den D3Cold-Stromzyklusmechanismus, um zurückzusetzen. Der D3Cold-Stromzyklusmechanismus emuliert das Entfernen von Energie vom Gerät und stellt ihn dann wieder her. Wenn andere Geräte dieselbe Stromschiene gemeinsam nutzen, werden sie auch zurückgesetzt. Wenn an__RST Methode durch eine _PRR (PowerResource) definiert und referenziert wird, sind alle Geräte betroffen, die PowerResource verwenden.
Da PLDR nur für interne Geräte funktioniert, muss sie in ACPI als solche deklariert werden. Legen Sie für USB-Geräte einen internen Port (nicht sichtbar) fest und kann mit einem integrierten Gerät verbunden werden. PortIsConnectable Byte zu 0xFF und the__PLD. UserVisible bit to 0.
Wenn der _PR3 -Mechanismus (D3Cold) für PLDR verwendet wird, stellen Sie sicher, dass Szenarien wie SystemWake und DeviceWake weiterhin funktionieren. Nominal bedeutet dies, dass es geeignete Energieressourcen gibt, die für D2, e.g._PR2 definiert sind. Die folgende Tabelle ist ein hilfreicher Leitfaden:
Betriebszustand | ACPI-Ressource | Behavior |
---|---|---|
D2 | _PR2 | Alle Für die klassendefinierte eingeschränkte Funktionalität dieses Zustands erforderlichen Leistungs- oder Taktuhren. |
D3 Hot (erforderlich) | _PR2 | Die gleichen Ressourcen wie der nächste höhere Zustand, der unterstützt wird (D2, D1 oder D0). |
D3Cold | _PR3 | Nur die Leistung oder Takte, die für das Gerät auf seinem Bus erforderlich sind, und reagieren auf einen busspezifischen Befehl. |