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


Bluetooth HFP DDI IOCTLs

Windows 8 представляет набор кодов управления вводом-выводом (IOCTL) в составе DDI, который позволяет аудиодрайверу работать с драйвером класса HFP и управлять подключением bluetooth для обхода звука.

Если не указано иное, для всех ioCTL в этом разделе верно следующее:

  • Если запрос выполнен успешно, элементу Information структуры STATUS_BLOCK присваивается размер выходного буфера в байтах. В противном случае элементу Information присваивается нулевое значение. Для элемента Status задано значение NTSTATUS.

  • Для всех IOCTLS требуется IRQL <= PASSIVE_LEVEL.

  • Звуковой драйвер должен использовать ioCTL с запросом IRP_MJ_DEVICE_CONTROL.

Для большинства кодов функций IOCTL звуковой драйвер должен инициализировать указатель FileObject в IO_STACK_LOCATION для драйвера HFP, когда звуковой драйвер инициализирует IRP управления устройством для отправки драйверу HFP. Аудиодрайвер обычно извлекает указатель объекта файла, вызывая IoGetDeviceObjectPointer.

Звуковой драйвер, скорее всего, отправит многие из этих запросов в произвольный поток (другими словами, "асинхронный" запрос). В таких случаях звуковому драйверу потребуется создать сам IRP с помощью метода IoAllocateIrp и задать поля в IRP напрямую, а не вызывать IoBuildDeviceIoControlRequest.

В следующих разделах приведены дополнительные сведения об этих Windows 8 IOCTL.

IOCTL_BTHHFP_DEVICE_GET_DESCRIPTOR

IOCTL_BTHHFP_DEVICE_GET_VOLUMEPROPERTYVALUES

IOCTL_BTHHFP_DEVICE_GET_KSNODETYPES

IOCTL_BTHHFP_DEVICE_GET_CONTAINERID

IOCTL_BTHHFP_DEVICE_REQUEST_CONNECT

IOCTL_BTHHFP_DEVICE_REQUEST_DISCONNECT

IOCTL_BTHHFP_DEVICE_GET_CONNECTION_STATUS_UPDATE

IOCTL_BTHHFP_SPEAKER_SET_VOLUME

IOCTL_BTHHFP_SPEAKER_GET_VOLUME_STATUS_UPDATE

IOCTL_BTHHFP_MIC_SET_VOLUME

IOCTL_BTHHFP_MIC_GET_VOLUME_STATUS_UPDATE

IOCTL_BTHHFP_STREAM_OPEN

IOCTL_BTHHFP_STREAM_CLOSE

IOCTL_BTHHFP_STREAM_GET_STATUS_UPDATE

Windows 8.1 обновил набор ioCTL, добавив следующие новые:

IOCTL_BTHHFP_DEVICE_GET_DESCRIPTOR2

IOCTL_BTHHFP_DEVICE_GET_NRECDISABLE_STATUS_UPDATE

Windows 10 обновил набор ioCTL, добавив следующий новый:

IOCTL_BTHHFP_DEVICE_GET_CODEC_ID

Сведения о структурах, которые работают с этими ioCTL, см. в разделе Структуры DDI Bluetooth HFP.

Структуры DDI bluetooth HFP