Bluetooth HFP DDI IOCTLs

Windows 8 introduce un conjunto de códigos de control de E/S (IOCTLs) como parte de una DDI que permite al controlador de audio trabajar con el controlador de clase de perfil manos libres (HFP), para operar una conexión de omisión de audio Bluetooth.

A menos que se indique lo contrario, se cumple lo siguiente para todas las E/STL de esta sección:

  • Si la solicitud se realiza correctamente, el miembro Information de la estructura STATUS_BLOCK se establece en el tamaño, en bytes, del búfer de salida. De lo contrario, el miembro Information se establece en cero. El miembro Status se establece en un valor NTSTATUS.

  • Todos los IOCTLS requieren IRQL <= PASSIVE_LEVEL.

  • El controlador de audio debe usar las ICTLs con la solicitud de IRP_MJ_DEVICE_CONTROL.

Para la mayoría de los códigos de función IOCTL, el controlador de audio debe inicializar el puntero FileObject en el IO_STACK_LOCATION del controlador HFP cuando el controlador de audio inicializa un IRP de control de dispositivo para enviarlo al controlador HFP. Normalmente, el controlador de audio recupera el puntero de objeto de archivo mediante una llamada a IoGetDeviceObjectPointer.

Es probable que el controlador de audio envíe muchas de estas solicitudes en un subproceso arbitrario (es decir, una solicitud "asincrónica"). En estos casos, el controlador de audio tendrá que compilar el IRP en sí mediante el método IoAllocateIrp y establecer campos en irP directamente en lugar de llamar a IoBuildDeviceIoControlRequest.

En los temas siguientes se proporcionan más detalles sobre estos Windows 8 IOCTLs:

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 ha actualizado el conjunto de ICTLs agregando los siguientes nuevos:

IOCTL_BTHHFP_DEVICE_GET_DESCRIPTOR2

IOCTL_BTHHFP_DEVICE_GET_NRECDISABLE_STATUS_UPDATE

Windows 10 ha actualizado el conjunto de IOPS agregando el siguiente nuevo:

IOCTL_BTHHFP_DEVICE_GET_CODEC_ID

Para obtener información sobre las estructuras que funcionan con estos IOCTLs, consulte Estructuras HFP DDI de Bluetooth.

Estructuras de HFP DDI de Bluetooth