Установка устройства Bluetooth
Существует два типа установки драйверов профилей Bluetooth:
- Установка на стороне клиента для удаленных устройств, где удаленное устройство объявляет свои службы, а компьютер подключается к нему. Примеры: мыши, клавиатуры и принтеры.
- Установка на стороне сервера , в которой компьютер объявляет службы, и удаленные устройства могут подключаться к компьютеру для использования этих служб. Например, поставщик может создать установку на стороне сервера, чтобы мобильное устройство могло печатать на принтере, подключенном к компьютеру.
Для этих двух типов установки требуются разные процедуры установки.
Установка драйвера клиентского профиля
Пользователь, который хочет использовать устройство с поддержкой Bluetooth, переведет устройство в диапазоне от компьютера и инициирует подключение с компьютера к удаленному устройству, используя следующую последовательность установки для драйвера профиля на стороне клиента.
- Выберите Добавить устройство Bluetooth в панель управления, чтобы найти все устройства в диапазоне от компьютера.
- Выберите устройство для связывания.
- Свяжите устройство с локальным радио. Это может быть связано с обменом ПИН-кодами.
- Локальное радио отправляет запрос SDP, чтобы определить службы, поддерживаемые на удаленном устройстве.
- Мастер обнаружения нового оборудования ищет соответствующие драйверы на локальном жестком диске и на клиентский компонент Центра обновления Windows.
- Если мастер обнаружения нового оборудования не находит соответствующий драйвер для устройства, он предлагает пользователю вставить установочный носитель драйвера профиля, содержащий файл сведений об установке устройства драйвера профиля (INF-файл).
Установка драйвера профиля на стороне сервера
Стек драйверов Bluetooth поддерживает идентификаторы GUID служб в соответствии с определением Bluetooth SIG, а также пользовательские GUID (то есть guidID, которые не определены в Bluetooth SIG).
Средство 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&nnnn
- BTHENUM\< ServiceGUID>_LOCALMFG&nnnn
Стек драйверов Bluetooth создает совместимые идентификаторы в соответствии со следующим шаблоном:
ServiceGUID — это 16-разрядный GUID, развернутый в 128-разрядный GUID, как определено в спецификации Bluetooth. Например, соответствует устройству HID.
- 8 цифр после VID& соответствуют коду идентификатора поставщика.
- 4 цифры после PID& соответствуют коду идентификатора продукта.
- 4 цифры после LOCALMFG& соответствуют изготовителю локального bluetooth-радио.
- Теги VID/PID и LOCALMFG не зависят друг от друга.
Наиболее универсальным идентификатором устройства является идентификатор ServiceGUID сам по себе. Пример:
Стек драйверов Bluetooth может быть ограничен загрузкой драйвера профиля и программного обеспечения для запуска только в определенном выпуске удаленного устройства с помощью идентификаторов Plug and Play как в удаленном устройстве, так и в INF-файле. Обратите внимание, что стек драйверов Bluetooth создает пару VID/PID, только если устройство публикует идентификатор Plug and Play, который стек может обнаружить с помощью SDP. Пример:
Стек драйверов Bluetooth можно ограничить загрузкой драйвера профиля и программного обеспечения для запуска только на определенном локальном радиосвязи Bluetooth, указав тег LOCALMFG в идентификаторе устройства в INF-файле. Пример: