Установка устройства Bluetooth
Внимание
Этот раздел предназначен для программистов. Если у вас возникли проблемы с установкой устройства Bluetooth, см . раздел "Пара устройства Bluetooth" в Windows
Существует два типа установки для драйверов профилей Bluetooth:
- Установка на стороне клиента для удаленных устройств, где удаленное устройство объявляет свои службы и компьютер подключается к нему. Примеры: мыши, клавиатуры и принтеры.
- Серверная установка , в которой компьютер объявляет службы и удаленные устройства, могут подключаться к компьютеру для использования этих служб. Например, поставщик может создать серверную установку, чтобы позволить мобильному устройству распечатать принтер, подключенный к компьютеру.
Для этих двух типов установки требуются различные процедуры установки.
Установка драйвера профиля на стороне клиента
Пользователь, который хочет использовать устройство с поддержкой Bluetooth, переносит устройство в диапазон компьютера и инициирует подключение с компьютера к удаленному устройству, используя следующую последовательность установки для драйвера профиля на стороне клиента.
- Выберите "Добавить устройство Bluetooth" в панель управления, чтобы найти все устройства в пределах диапазона компьютера.
- Выберите устройство, с которым нужно связаться.
- Связывание устройства с локальным радио, которое может или не включать обмен ПИН-кодами.
- Локальное радио выдает запрос SDP для идентификации служб, поддерживаемых на удаленном устройстве.
- Мастер поиска новых аппаратных средств ищет соответствующие драйверы на локальном жестком диске и Обновл. Windows.
- Если мастер обнаружения нового оборудования не находит подходящий драйвер для устройства, он предложит пользователю вставить носитель установки драйвера профиля, содержащий файл сведений о настройке устройства драйвера профиля (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