Compartilhar via


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_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 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.

Estruturas DDI hfp bluetooth