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


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

Внимание

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

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

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

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

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

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

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

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

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

Примечание.

Средство guidgen.exe , предоставленное пакетом SDK для Microsoft Windows, можно использовать для создания пользовательских идентификаторов 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-файл" и "Директивы".

идентификаторы самонастраивающийся

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

  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnnnn
  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnnnn_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 может быть ограничен загрузкой драйвера профиля и программного обеспечения для запуска только в определенном выпуске удаленного устройства с помощью идентификаторов самонастраивающийся как на удаленном устройстве, так и в INF-файле. Стек драйверов Bluetooth создает пару VID/PID, только если устройство публикует идентификатор самонастраивающийся, который стек может обнаружить с помощью SDP. Например:

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

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

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