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


Списки IOCTL Bluetooth

Стек драйверов Bluetooth предоставляет драйверы профилей с несколькими ioCTL для сбора сведений о:

  • Локальное радио и система Bluetooth.

  • Удаленные устройства Bluetooth.

  • Устройство, которое заставило диспетчер Plug and Play (PnP) загрузить драйвер профиля.

Для сбора сведений о локальном радио и системе Bluetooth драйвер профиля использует IOCTL_BTH_GET_LOCAL_INFO. После возврата IOCTL его член AssociatedIrp.SystemBuffer содержит указатель на структуру BTH_LOCAL_RADIO_INFO , которая содержит сведения о локальном радио и системе Bluetooth, включая флаги, указывающие, можно ли обнаружить и подключить локальное радио. Возвращаемая структура BTH_LOCAL_RADIO_INFO содержит структуру BTH_DEVICE_INFO , которая содержит сведения о системе, и структуру BTH_RADIO_INFO , содержащую локальные радиоспецифичные сведения.

Для сбора сведений об определенном удаленном устройстве Bluetooth драйвер профиля использует IOCTL_BTH_GET_RADIO_INFO. После возврата IOCTL его член AssociatedIrp.SystemBuffer содержит указатель на структуру BTH_RADIO_INFO, которая предоставляет сведения о конкретном удаленном радио, включая возможность обнаружения удаленного радио и подключения к нему.

Для сбора сведений обо всех обнаруженных удаленных радиостанциях драйвер профиля использует IOCTL_BTH_GET_DEVICE_INFO. После возврата IOCTL его член AssociatedIrp.SystemBuffer содержит указатель на BTH_DEVICE_INFO_LIST структуру, содержащую массив BTH_DEVICE_INFO структур. Структура BTH_DEVICE_INFO_LIST содержит по одной записи массива для каждого обнаруженного удаленного радиосвязи. Api BluetoothGetDeviceInfo в пользовательском режиме использует эту функцию для возврата сведений обо всех удаленных радиосвязях.

Для сбора сведений об удаленном устройстве, которое вызвало его загрузку диспетчером PnP, драйвер профиля использует IOCTL_INTERNAL_BTHENUM_GET_DEVINFO. После возврата IOCTL его член AssociatedIrp.SystemBuffer содержит указатель на структуру BTH_DEVICE_INFO, которая содержит сведения об удаленном устройстве, включая его адрес устройства Bluetooth, состояние устройства и параметры класса устройства (CoD).

Драйвер профиля использует IOCTL_INTERNAL_BTHENUM_GET_ENUMINFO для получения сведений о базовом устройстве и службе, которые вызвали загрузку драйвера профиля диспетчером PnP. После возврата IOCTL его член AssociatedIrp.SystemBuffer содержит указатель на структуру BTH_ENUMERATOR_INFO , которая содержит предоставленные поставщиком сведения об устройстве, включая номер порта, флаги устройства, идентификатор поставщика и идентификатор продукта.

Дополнительные сведения об использовании списков IOCTL и BRB Bluetooth см. в разделе Создание и отправка BRB.