Bluetooth HFP DDI IOCTLs
Windows 8 apresenta um conjunto de IOCTLs (códigos de controle de E/S) como parte de uma DDI que permite que o driver de áudio trabalhe com o driver de classe HFP (perfil mãos livres), para operar uma conexão de bypass de áudio Bluetooth.
A menos que indicado de outra forma, o seguinte é verdadeiro para todas as IOCTLs nesta seção:
Se a solicitação for bem-sucedida, o membro Information da estrutura STATUS_BLOCK será definido como o tamanho, em bytes, do buffer de saída. Caso contrário, o membro Informações será definido como zero. O membro Status é definido como um valor NTSTATUS.
Todos os IOCTLS exigem IRQL <= PASSIVE_LEVEL.
O driver de áudio deve usar as IOCTLs com a solicitação IRP_MJ_DEVICE_CONTROL.
Para a maioria dos códigos de função IOCTL, o driver de áudio deve inicializar o ponteiro FileObject no IO_STACK_LOCATION para o driver HFP quando o driver de áudio inicializa um IRP de controle de dispositivo para enviar ao driver HFP. O driver de áudio normalmente recupera o ponteiro do objeto de arquivo chamando IoGetDeviceObjectPointer.
O driver de áudio provavelmente enviará muitas dessas solicitações em um thread arbitrário (em outras palavras, uma solicitação "assíncrona"). Nesses casos, o driver de áudio precisará criar o PRÓPRIO IRP usando o método IoAllocateIrp e definir campos no IRP diretamente em vez de chamar IoBuildDeviceIoControlRequest.
Os tópicos a seguir fornecem mais detalhes sobre essas 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_GET_VOLUME_STATUS_UPDATE
IOCTL_BTHHFP_STREAM_GET_STATUS_UPDATE
Windows 8.1 atualizou o conjunto de IOCTLs adicionando os seguintes novos:
IOCTL_BTHHFP_DEVICE_GET_DESCRIPTOR2
IOCTL_BTHHFP_DEVICE_GET_NRECDISABLE_STATUS_UPDATE
Windows 10 atualizou o conjunto de IOCTLs adicionando o seguinte novo:
IOCTL_BTHHFP_DEVICE_GET_CODEC_ID
Para obter informações sobre as estruturas que funcionam com essas IOCTLs, consulte Estruturas DDI bluetooth HFP.