Поделиться через


Установка устройства Bluetooth

Важно!

Этот раздел предназначен для программистов. Если у вас возникли проблемы с установкой устройства Bluetooth, см. статью Связывание устройства Bluetooth в Windows

Существует два типа установки драйверов профилей Bluetooth:

  • Установка на стороне клиента для удаленных устройств, где удаленное устройство объявляет свои службы и компьютер подключается к нему. Примеры: мыши, клавиатуры и принтеры.
  • Установка на стороне сервера , в которой компьютер объявляет службы, а удаленные устройства могут подключаться к компьютеру для использования этих служб. Например, поставщик может создать установку на стороне сервера, чтобы позволить мобильному устройству печатать на принтере, подключенном к компьютеру.

Для этих двух типов установки требуются разные процедуры установки.

Установка драйвера клиентского профиля

Пользователь, который хочет использовать устройство с поддержкой Bluetooth, переводит устройство в диапазон действия компьютера и инициирует подключение с компьютера к удаленному устройству, используя следующую последовательность установки для драйвера клиентского профиля.

  1. Выберите Добавить устройство Bluetooth в панель управления, чтобы найти все устройства в зоне действия компьютера.
  2. Выберите устройство для связывания.
  3. Свяжите устройство с локальным радио, что может включать или не включать обмен ПИН-кодами.
  4. Локальное радио отправляет запрос SDP для определения служб, поддерживаемых на удаленном устройстве.
  5. Мастер обнаружения нового оборудования выполняет поиск соответствующих драйверов на локальном жестком диске и на клиентский компонент Центра обновления Windows.
  6. Если мастер обнаружения нового оборудования не находит подходящий драйвер для устройства, он предлагает пользователю вставить установочный носитель драйвера профиля, содержащий файл сведений об установке устройства драйвера профиля (INF-файл).

Установка драйвера профиля на стороне сервера

Стек драйверов Bluetooth поддерживает идентификаторы GUID службы в соответствии с определением Bluetooth SIG, а также пользовательские GUID, не определенные sIG Bluetooth.

Примечание

Средство guidgen.exe, предоставляемое вместе с Microsoft Windows SDK, можно использовать для создания пользовательских идентификаторов GUID.

Приложение установки в пользовательском режиме должно быть написано для предоставления функциональных возможностей компьютера, которые могут использовать удаленные устройства Bluetooth.

Приложение установки должно взаимодействовать со стеком драйверов Bluetooth, чтобы создать GUID службы для предоставления функциональных возможностей. Поставщики указывают GUID службы в приложении и в INF-файле установки устройства.

Приложение установки должно вызывать API пользовательского режима BluetoothSetLocalServiceInfo. Прежде чем приложение сможет вызвать этот API, оно должно иметь SE_LOAD_DRIVER_NAME привилегию безопасности. В следующем примере кода показано, как получить эту привилегию. Обратите внимание , что в примере не показана обработка ошибок.

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-файл драйвера профиля

INF-файл драйвера профиля содержит сведения об устройстве Bluetooth для установки на стороне клиента. Для установки на стороне сервера INF-файл указывает идентификатор устройства, соответствующий GUID службы, созданному приложением установки. Все устройства Bluetooth являются членами класса Bluetooth . Установщик класса Bluetooth (Bthci.dll) помогает устанавливать драйверы профиля.

Дополнительные сведения о создании и распространении INF-файлов и установке драйверов см. в разделах Создание INF-файла и Разделов и директив INF-файлов.

идентификаторы Plug and Play

Стек драйверов Bluetooth создает идентификаторы оборудования в соответствии со следующими шаблонами:

  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnnnn
  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnn_PID& nnnnnn
  • BTHENUM\{ ServiceGUID}_LOCALMFG& nnnn

Стек драйверов Bluetooth создает совместимые идентификаторы в соответствии со следующим шаблоном:

  • BTHENUM\{ ServiceGUID}

ServiceGUID — это 16-разрядный GUID, расширенный в 128-разрядный GUID, как определено в спецификации Bluetooth. Например, {00001124-0000-1000-8000-00805F9B34FB} соответствует устройству HID.

  • Восемь цифр после &VID соответствуют коду идентификатора поставщика.
  • Четыре цифры после PID& соответствуют коду продукта.
  • Четыре цифры после localMFG& соответствуют производителю локального радио Bluetooth.
  • Теги VID/PID и LOCALMFG не зависят друг от друга.

Наиболее универсальным идентификатором устройства является идентификатор ServiceGUID сам по себе. Пример:

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

Стек драйверов Bluetooth можно ограничить загрузкой драйвера профиля и программного обеспечения для запуска только в определенном выпуске удаленного устройства с помощью идентификаторов Plug and Play как на удаленном устройстве, так и в INF-файле. Стек драйверов Bluetooth создает пару VID/PID, только если устройство публикует идентификатор Plug and Play, который стек может обнаружить с помощью SDP. Пример:

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

Стек драйверов Bluetooth можно ограничить загрузкой драйвера профиля и программного обеспечения для запуска только на определенном локальном радиомодуле Bluetooth, указав тег LOCALMFG в идентификаторе устройства в INF-файле. Пример:

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