Freigeben über


Installieren eines Bluetooth-Geräts

Wichtig

Dieses Thema richtet sich an Programmierer. Wenn Sie ein Kunde sind, bei dem Probleme bei der Installation von Bluetooth-Geräten auftreten, finden Sie weitere Informationen unter 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 angibt und der Computer eine Verbindung mit diesem herstellt. Beispiele hierfür 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 kann ein Anbieter eine serverseitige Installation erstellen, damit ein mobiles Gerät auf einem drucker drucken kann, der an den Computer angeschlossen ist.

Diese beiden Installationstypen erfordern unterschiedliche Installationsverfahren.

Installieren eines clientseitigen Profiltreibers

Ein Benutzer, der ein Bluetooth-fähiges Gerät verwenden möchte, bringt das Gerät in Reichweite des Computers und initiiert eine Verbindung vom Computer mit dem 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 in Reichweite des Computers zu finden.
  2. Wählen Sie das Gerät aus, mit dem sie gekoppelt werden sollen.
  3. Koppeln Sie das Gerät mit dem lokalen Funkgerät, was möglicherweise einen PIN-Austausch beinhaltet oder nicht.
  4. Das lokale Funkgerät gibt eine SDP-Anfrage aus, um die auf dem Remotegerät unterstützten Dienste zu identifizieren.
  5. Der Assistent "Neue Hardware gefunden" sucht nach entsprechenden Treibern auf der lokalen Festplatte und auf Windows Update.
  6. Wenn der Assistent neue Hardware gefunden keinen geeigneten Treiber für das Gerät findet, fordert er den Benutzer auf, die Installationsmedien des Profiltreibers einzufügen, die die Geräteeinrichtungsinformationsdatei (INF-Datei) des Profiltreibers enthalten.

Installieren eines serverseitigen Profiltreibers

Der Bluetooth-Treiberstapel unterstützt Dienst-GUIDs, wie von der Bluetooth SIG definiert, und benutzerdefinierte GUIDs, die nicht von der Bluetooth SIG definiert sind.

Hinweis

Das mit dem Microsoft Windows SDK bereitgestellteguidgen.exe-Tool kann verwendet werden, um benutzerdefinierte GUIDs zu erstellen.

Eine Anwendung für die Installation im Benutzermodus muss geschrieben werden, um Computerfunktionen verfügbar zu machen, die Bluetooth-Remotegeräte verwenden können.

Die Installationsanwendung muss mit dem Bluetooth-Treiberstapel kommunizieren, um eine Dienst-GUID zu erstellen, damit die Funktionalität verfügbar gemacht werden kann. Anbieter geben die Dienst-GUID in der Anwendung und in ihrer INF-Datei für die Geräteinstallation an.

Die Installationsanwendung muss die Benutzermodus-API BluetoothSetLocalServiceInfo aufrufen. Bevor die Anwendung diese API aufrufen kann, muss die Anwendung über das SE_LOAD_DRIVER_NAME Sicherheitsberechtigung verfügen. Im folgenden Codebeispiel wird veranschaulicht, wie Sie diese Berechtigung erhalten. Beachten Sie , dass das Beispiel die Fehlerbehandlung nicht 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)

Profiltreiber-INF-Datei

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 von der Installationsanwendung erstellten Dienst-GUID entspricht. Alle Bluetooth-Geräte sind Mitglieder der Bluetooth-Klasse . Das Bluetooth-Klasseninstallationsprogramm (Bthci.dll) hilft bei der Installation von Profiltreibern.

Weitere Informationen zum Erstellen und Verteilen von INF-Dateien und zum Installieren von Treibern finden Sie unter Erstellen einer INF-Datei und INF-Dateiabschnitte und -anweisungen.

Plug & Play IDs

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

  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnn
  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnnn_PID&nnnnn
  • BTHENUM\{ ServiceGUID}_LOCALMFG& nnnnn

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

  • BTHENUM\{ ServiceGUID}

ServiceGUID ist eine 16-Bit-GUID, die in eine 128-Bit-GUID erweitert wird, wie in der Bluetooth-Spezifikation definiert. {00001124-0000-1000-8000-00805F9B34FB} entspricht beispielsweise einem HID-Gerät.

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

Die allgemeinste Geräte-ID ist eine ServiceGUID an sich. Beispiel:

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

Der Bluetooth-Treiberstapel kann so beschränkt werden, dass Der Profiltreiber und die Software nur auf einer bestimmten Version eines Remotegeräts ausgeführt werden können, indem Plug & Play IDs sowohl im 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. Beispiel:

BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_VID& nnnnnn_PID& nnnnnn

Der Bluetooth-Treiberstapel kann auf das Laden des Profiltreibers und der Software für die Ausführung nur auf einem bestimmten lokalen Bluetooth-Funkgerät beschränkt werden, indem Sie das LOCALMFG-Tag in der Geräte-ID in Ihrer INF-Datei angeben. Beispiel:

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