Bluetooth IOCTLs
A pilha de driver bluetooth fornece aos drivers de perfil vários IOCTLs para coletar informações sobre:
O rádio e o sistema Bluetooth locais.
Dispositivos Bluetooth remotos.
O dispositivo que fez com que o gerenciador de Plug and Play (PnP) carregasse um driver de perfil.
Para coletar informações sobre o sistema e rádio Bluetooth local, um driver de perfil usa IOCTL_BTH_GET_LOCAL_INFO. Depois que o IOCTL retorna, seu membro AssociatedIrp.SystemBuffer contém um ponteiro para uma estrutura BTH_LOCAL_RADIO_INFO que contém informações sobre o rádio e o sistema Bluetooth local, incluindo sinalizadores que indicam se o rádio local pode ser descoberto e conectado. A estrutura de BTH_LOCAL_RADIO_INFO retornada contém uma estrutura BTH_DEVICE_INFO , que contém informações específicas do sistema e uma estrutura BTH_RADIO_INFO , que contém informações específicas de rádio local.
Para coletar informações sobre um dispositivo Bluetooth remoto específico, um driver de perfil usa IOCTL_BTH_GET_RADIO_INFO. Depois que o IOCTL retorna, seu membro AssociatedIrp.SystemBuffer contém um ponteiro para uma estrutura BTH_RADIO_INFO que fornece informações sobre o rádio remoto específico, incluindo se o rádio remoto pode ser descoberto e conectado.
Para coletar informações sobre todos os rádios remotos que foram descobertos, um driver de perfil usa IOCTL_BTH_GET_DEVICE_INFO. Depois que o IOCTL retorna, seu membro AssociatedIrp.SystemBuffer contém um ponteiro para uma estrutura BTH_DEVICE_INFO_LIST que contém uma matriz de estruturas BTH_DEVICE_INFO. A estrutura BTH_DEVICE_INFO_LIST contém uma entrada de matriz para cada rádio remoto descoberto. A API BluetoothGetDeviceInfo no modo de usuário usa essa funcionalidade para retornar informações sobre todos os rádios remotos.
Para coletar informações sobre o dispositivo remoto que fez com que o Gerenciador de PnP o carregasse, um driver de perfil usa IOCTL_INTERNAL_BTHENUM_GET_DEVINFO. Depois que o IOCTL retorna, seu membro AssociatedIrp.SystemBuffer contém um ponteiro para uma estrutura BTH_DEVICE_INFO que contém informações sobre o dispositivo remoto, incluindo seu endereço de dispositivo Bluetooth, estado do dispositivo e suas configurações de classe de dispositivo (CoD).
Um driver de perfil usa IOCTL_INTERNAL_BTHENUM_GET_ENUMINFO para obter informações sobre o dispositivo e o serviço subjacentes que fizeram com que o gerenciador PnP carregasse o driver de perfil. Depois que o IOCTL retorna, seu membro AssociatedIrp.SystemBuffer contém um ponteiro para uma estrutura BTH_ENUMERATOR_INFO que contém informações fornecidas pelo fornecedor sobre o dispositivo, incluindo o número da porta, sinalizadores de dispositivo, ID do fornecedor e ID do produto.
Para obter mais informações sobre como usar IOCTLs e BRBs Bluetooth, consulte Compilando e enviando um BRB.