Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Эта статья предназначена для программистов. Если у вас возникли проблемы с установкой устройства 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-файлов.
Идентификаторы Plug and Play
Стек драйверов Bluetooth создает аппаратные идентификаторы в соответствии со следующими шаблонами:
- BTHENUM\{ ServiceGUID}_VID& nnnnnnnn
- BTHENUM\{ ServiceGUID}_VID& nnnnnn_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