Freigeben über


Häufig gestellte Fragen zu Transport Bus-Treibern

Im Folgenden finden Sie häufig gestellte Fragen, Szenarien und Probleme, die einem Treiberentwickler bei der Entwicklung eines Bustreibers zur Unterstützung der Bluetooth-Funktionalität auftreten können.

Bei meinem seriellen Bustreiber ist ein Fehler aufgetreten. Was bedeutet das?

Code 10-49: Eine Erklärung von Fehlercodes, die von Geräte-Manager generiert werden.

Code 51: Wenn ein serieller Bustreiber über abhängige Controllertreiber verfügt (wie in der ACPI-Tabelle definiert), lädt das System den seriellen Bustreiber, aber es wird erst gestartet, wenn alle abhängigen Treiber erfolgreich gestartet wurden. Wenn der Controllertreiber nicht vorhanden ist oder nicht erfolgreich geladen wurde, wird ein Code 51-Fehler ausgelöst.

Code 52 = Nicht signierter Treiber.

Die Treibersignatur wird in den folgenden Themen ausführlicher beschrieben:

Warum erhält mein serieller Bustreiber keine IOCTLs aus dem Bluetooth-Kernstapel?

Ein serieller Bustreiber hat möglicherweise Funktionen im Leerlauf aktiviert, aber die Mechanismen für die Energiesteuerungsbehandlung nicht implementiert, die im Abschnitt und seine Unterthemen erläutert werden. In dieser Situation kann ein Bluetooth HID-Gerät (Maus oder Tastatur) den Stapel nicht reaktivieren (von D2 auf D0). Es wird empfohlen, diese Leerlauffunktion zu deaktivieren, bis grundlegende Bluetooth-Funktionen und Mechanismen zur Energiesteuerung implementiert sind.

Gibt es Bluetooth Windows Logo Tests?

Das Windows HCK (Hardware Certification Kit) enthält eine Reihe von Bluetooth-spezifischen Tests, die zum Erhalt der Zertifizierung bestanden werden müssen. Bluetooth-Treiberentwickler sollten diese Tests während der Entwicklung ausführen, um sicherzustellen, dass ihr Treiber diese bestanden hat, um eine Zertifizierung zu erhalten und über ordnungsgemäßen Support zu verfügen.

Sollten UART-Einstellungen zwischen den verschiedenen Energiezustandsübergängen beibehalten und wiederhergestellt werden?

Da der Bluetooth-Transporttreiber die Einstellungen des Remote-UART-Controllers (einschließlich der Einstellungen nach dem Einschalten) kennt und steuert, sollte der Bluetooth-Transporttreiber sowohl die Remote- als auch die lokalen UART-Controller zurücksetzen, bevor er in einen Zustand eintritt, in dem die Stromversorgung verloren gehen könnte. Wenn also die Stromversorgung wiederhergestellt wird, können die Einstellungen sowohl auf der Remote-UART -Seite (Bluetooth-Seite) als auch auf den lokalen UART-Controllern (Hostseite) synchron sein. Der UART-Treiber hat nur die Kontrolle über den lokalen UART-Controller und ist dafür verantwortlich, die Einstellungen vor dem Ausschalten wiederherzustellen. Der Bluetooth-Transporttreiber kann auch den UART-Treiber hinsichtlich seiner Einschalteinstellungen abfragen (da der UART-Treiber sie ursprünglich mithilfe der ACPI-Tabelle festgelegt hat), zwischenspeichern und festlegen, wenn er einen Dx-Zustand eingibt.

Was geschieht, wenn der Bustreiber eine Aktivierungsbenachrichtigung empfängt, während der Stapel gerade D2 eingibt?

In dieser Situation sollte der Bustreiber den D2-Übergang abschließen und dann mit dem Aktivierungsmechanismus fortfahren. Diese Synchronisierung wird vom seriellen Bustreiber erwartet (z. B. kann er die Reaktivierungsanforderung in eine Warteschlange stellen und den Aktivierungsprozess erst nach Abschluss des D2-Übergangs starten).

Wie sollte ein Bustreiber seine ACPI-Ressource mit mehreren Vorkommen identifizieren, z. B. mehrere GPIOs?

Es gibt keine Möglichkeit, eine Ressource, GPIO oder anderweitig zu kennzeichnen. Aus diesem Grund ist die Ressourcenreihenfolge wichtig. Der Gerätetreiber sollte eine Konvention einrichten (z. B. die erste GPIO-Ressource, die in der Liste angezeigt wird, ist für BT_WAKE und die zweite, die angezeigt wird, für HOST_WAKE).