Acessando informações do serviço SDP
Depois que um driver de perfil envia um registro SDP (Protocolo de Descoberta de Serviço) para anunciar seus serviços com o SDP, outros dispositivos podem descobrir esses serviços pesquisando especificamente o registro ou navegando para encontrá-lo.
Para pesquisar registros SDP, um driver de perfil de cliente deve primeiro usar IOCTL_BTH_SDP_CONNECT para se conectar ao serviço SDP do dispositivo remoto.
Em seguida, um driver de perfil pode usar um dos seguintes IOCTLs para executar a pesquisa de registro SDP real:
IOCTL_BTH_SDP_ATTRIBUTE_SEARCH obtém todos os componentes de um registro SDP remoto que se enquadram em um intervalo de atributos SDP especificado.
IOCTL_BTH_SDP_SERVICE_SEARCH emite uma solicitação SDP para o dispositivo remoto, solicitando identificadores para registros SDP de uma classe de serviço ou classes específicas.
IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH combina IOCTL_BTH_SDP_ATTRIBUTE_SEARCH e IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH e retorna um fluxo de registro SDP utilizável em uma única operação.
Os drivers de perfil podem usar IOCTL_BTH_SDP_SERVICE_SEARCH e IOCTL_BTH_SDP_ATTRIBUTE_SEARCH para reduzir a quantidade de tráfego SDP transmitido por um link Bluetooth e podem extrair informações necessárias usando um pequeno número de MTUs (unidades de transferência máximas). Se nenhum desses problemas for de grande preocupação, poderá ser mais conveniente para os drivers de perfil chamarem IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH.
Depois que o driver de perfil tiver obtido o protocolo dinâmico /multiplexador de serviço (PSM) para o serviço desejado, ele poderá se conectar ao serviço remoto usando o BRB_L2CA_OPEN_CHANNEL BRB.
Observação
Se o serviço tiver um PSM fixo, o que muitos fazem, os drivers de perfil de cliente L2CAP não precisarão usar o SDP para obter o PSM. No entanto, os drivers de perfil de cliente L2CAP ainda podem usar o SDP para obter os atributos do servidor SDP.
Quando o driver de perfil terminar de pesquisar, ele deverá usar IOCTL_BTH_SDP_DISCONNECT para se desconectar do servidor SDP remoto.