IOCTL_BTH_GET_DEVICE_INFO IOCTL (bthioctl.h)
Запрос IOCTL_BTH_GET_DEVICE_INFO возвращает сведения обо всех кэшированных ранее обнаруженных удаленных радиостанциях с поддержкой Bluetooth.
Основной код
Входной буфер
Элемент AssociatedIrp.SystemBuffer указывает на буфер для структуры BTH_DEVICE_INFO_LIST .
Длина входного буфера
Длина структуры BTH_DEVICE_INFO_LIST
Выходной буфер
Элемент AssociatedIrp.SystemBuffer указывает на буфер, содержащий структуру BTH_DEVICE_INFO_LIST . Элемент numOfDevices структуры BTH_DEVICE_INFO_LIST содержит количество устройств, для которых есть сведения, и массив BTH_DEVICE_INFO структур; одна запись массива для каждого устройства.
Длина выходного буфера
Если размер переданного выходного буфера не является точно sizeof(BTH_DEVICE_INFO_LIST)
равным правильному кратному sizeof(BTH_DEVICE_INFO)
, запрос завершится ошибкой с STATUS_INVALID_BUFFER_SIZE.
Блок состояния
Если запрос выполнен успешно, элементу Information структуры STATUS_BLOCK присваивается размер (в байтах) буфера, в котором хранятся сведения о массиве устройств. Структура BTH_DEVICE_INFO_LIST содержит хранилище для первой BTH_DEVICE_INFO структуры, поэтому, если устройства не возвращаются, элементу Information присваивается размер первой структуры.
Для элемента Status задано одно из значений в следующей таблице.
Значение состояния | Описание |
---|---|
STATUS_SUCCESS | IOCTL успешно завершен. |
STATUS_INVALID_PARAMETER | Входной буфер, переданный в, имеет значение NULL. |
STATUS_INVALID_BUFFER_SIZE | Размер выходного буфера не был правильным. |
Комментарии
IOCTL_BTH_GET_DEVICE_INFO IOCTL предоставляет сведения обо всех ранее обнаруженных удаленных радиостанциях.
Элемент numOfDevices структуры BTH_DEVICE_INFO_LIST возвращает общее количество BTH_DEVICE_INFO структур, возвращаемых IOCTL. Если вызывающий драйвер передает буфер, который меньше значения элемента numOfDevices , возвращается только часть доступных структур. Разработчики драйверов Bluetooth должны сначала вызвать IOCTL_BTH_GET_DEVICE_INFO с небольшим буфером, например sizeof(BTH_DEVICE_INFO_LIST)
, а затем использовать возвращенный член numOfDevices для правильного размера буфера для последующего вызова.
Структура BTH_DEVICE_INFO_LIST включает хранилище для первой структуры BTH_DEVICE_INFO. Используйте следующую формулу, чтобы вычислить правильный размер буфера для вызова IOCTL_BTH_GET_DEVICE_INFO:
Buffer=sizeof(BTH_DEVICE_INFO_LIST)+(NumOfDevices-1)*sizeof(BTH_DEVICE_INFO)
.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Versions:_Supported в Windows Vista и более поздних версий. |
Верхняя часть | bthioctl.h (включая Bthioctl.h) |
IRQL | <= PASSIVE_LEVEL |