Installieren eines Bluetooth-Geräts

Wichtig

Dieses Thema ist für Programmierer gedacht. Wenn ein Kunde Probleme bei der Installation von Bluetooth-Geräten hat, lesen Sie das Koppeln eines Bluetooth-Geräts in Windows.

Es gibt zwei Installationstypen für Bluetooth-Profiltreiber:

  • Clientseitige Installation für Remotegeräte, auf denen das Remotegerät seine Dienste ankündigen und der Computer eine Verbindung damit herstellt. Beispiele sind: Mäuse, Tastaturen und Drucker.
  • Serverseitige Installation , bei der der Computer Dienste ankündigen und Remotegeräte eine Verbindung mit dem Computer herstellen können, um diese Dienste zu verwenden. Beispielsweise könnte ein Anbieter eine serverseitige Installation erstellen, damit ein mobiles Gerät auf einem Drucker gedruckt werden kann, der an den Computer angeschlossen ist.

Für diese beiden Installationstypen sind unterschiedliche Installationsverfahren erforderlich.

Installieren eines clientseitigen Profiltreibers

Ein Benutzer, der ein Bluetooth-fähiges Gerät verwenden möchte, bringt das Gerät innerhalb des Bereichs des Computers und initiiert eine Verbindung vom Computer zum Remotegerät mithilfe der folgenden Installationssequenz für einen clientseitigen Profiltreiber.

  1. Wählen Sie "Bluetooth-Gerät hinzufügen" in Systemsteuerung aus, um alle Geräte innerhalb des Bereichs des Computers zu finden.
  2. Wählen Sie das Gerät aus, mit dem sie gekoppelt werden soll.
  3. Koppeln Sie das Gerät mit dem lokalen Funkgerät, das möglicherweise einen PIN-Austausch umfasst.
  4. Das lokale Radio gibt eine SDP-Anfrage aus, um die auf dem Remotegerät unterstützten Dienste zu identifizieren.
  5. Der Assistent "Neue Hardware gefunden" sucht nach geeigneten Treibern auf der lokalen Festplatte und unter Windows Update.
  6. Wenn der Assistent für die gefundene neue Hardware keinen geeigneten Treiber für das Gerät findet, fordert er den Benutzer auf, das Profiltreiberinstallationsmedium einzufügen, das die Geräteeinrichtungsinformationsdatei des Profiltreibers (INF-Datei) enthält.

Installieren eines serverseitigen Profiltreibers

Der Bluetooth-Treiberstapel unterstützt Dienst-GUIDs gemäß der Definition von Bluetooth SIG und benutzerdefinierten GUIDs, die nicht von der Bluetooth SIG definiert sind.

Hinweis

Das mit dem Microsoft Windows SDK bereitgestellte guidgen.exe Tool kann zum Erstellen benutzerdefinierter GUIDs verwendet werden.

Eine Benutzermodusinstallationsanwendung muss geschrieben werden, um Computerfunktionen verfügbar zu machen, die Remote-Bluetooth-Geräte verwenden können.

Die Installationsanwendung muss mit dem Bluetooth-Treiberstapel kommunizieren, um eine Dienst-GUID für die verfügbaren Funktionen zu erstellen. Anbieter geben die Dienst-GUID in der Anwendung und in der INF-Datei der Geräteinstallation an.

Die Installationsanwendung muss die Benutzermodus-API BluetoothSetLocalServiceInfo aufrufen. Bevor die Anwendung diese API aufrufen kann, muss die Anwendung über die SE_LOAD_DRIVER_NAME Sicherheitsberechtigung verfügen. Im folgenden Codebeispiel wird veranschaulicht, wie Sie diese Berechtigung abrufen. Beachten Sie , dass das Beispiel keine Fehlerbehandlung veranschaulicht.

HANDLE procToken;
LUID luid;
TOKEN_PRIVILEGES tp;

OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &procToken);

LookupPrivilegeValue(NULL, SE_LOAD_DRIVER_NAME, &luid);

Tp.PrivilegeCount = 1;
Tp.privileges[0].Luid = luid;
Tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(procToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES) NULL, (PDWORD)NULL)

INF-Datei des Profiltreibers

Die INF-Datei eines Profiltreibers enthält Informationen zu einem Bluetooth-Gerät für die clientseitige Installation. Bei einer serverseitigen Installation gibt die INF-Datei eine Geräte-ID an, die der dienst-GUID entspricht, die von der Installationsanwendung erstellt wurde. Alle Bluetooth-Geräte sind Mitglieder der Bluetooth-Klasse . Das Bluetooth-Klasseninstallationsprogramm (Bthci.dll) hilft beim Installieren von Profiltreibern.

Weitere Informationen zum Erstellen und Verteilen von INF-Dateien und zum Installieren von Treibern finden Sie unter Creating an INF File and INF File Sections and Direktiven.

Plug & Play-IDs

Der Bluetooth-Treiberstapel generiert Hardware-IDs gemäß den folgenden Vorlagen:

  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnn
  • BTHENUM\{ ServiceGUID}_VID& nnn_PID& nnnn
  • BTHENUM\{ ServiceGUID}_LOCALMFG& nnnn

Der Bluetooth-Treiberstapel generiert kompatible IDs gemäß der folgenden Vorlage:

  • BTHENUM\{ ServiceGUID}

ServiceGUID ist eine 16-Bit-GUID, die gemäß der Bluetooth-Spezifikation in eine 128-Bit-GUID erweitert wird. Beispielsweise entspricht {00001124-0000-1000-8000-00805F9B34FBB} einem HID-Gerät.

  • Die acht Ziffern nach VID& entsprechen dem Anbieter-ID-Code.
  • Die vier Ziffern nach PID& entsprechen dem Produkt-ID-Code.
  • Die vier Ziffern nach LOCALMFG& entsprechen dem Hersteller des lokalen Bluetooth-Funks.
  • Die Tags VID/PID und LOCALMFG sind voneinander unabhängig.

Die generischste Geräte-ID ist selbst eine ServiceGUID . Zum Beispiel:

BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}

Der Bluetooth-Treiberstapel kann auf das Laden des Profiltreibers und der Software beschränkt werden, um nur auf einer bestimmten Version eines Remotegeräts ausgeführt zu werden, indem Plug & Play IDs sowohl auf dem Remotegerät als auch in der INF-Datei verwendet werden. Der Bluetooth-Treiberstapel generiert nur dann ein VID/PID-Paar, wenn das Gerät eine Plug & Play-ID veröffentlicht, die der Stapel mithilfe von SDP erkennen kann. Zum Beispiel:

BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_VID& n_PID& nnnnn

Der Bluetooth-Treiberstapel kann auf das Laden des Profiltreibers und der Software beschränkt werden, die nur auf einem bestimmten lokalen Bluetooth-Radio ausgeführt werden kann, indem das LOCALMFG-Tag in der Geräte-ID in Der INF-Datei angegeben wird. Zum Beispiel:

BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_LOCALMFG& nnnn