Partilhar via


Acesso às informações do serviço SDP

Após um controlador do perfil enviar um registo SDP (Service Discovery Protocol) para publicitar os seus serviços utilizando o SDP, outros dispositivos podem descobrir esses serviços, quer procurando especificamente o registo, quer a navegar por forma a encontrá-los.

Para procurar 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.

Um driver de perfil pode usar um dos seguintes IOCTLs para executar a pesquisa real de registro SDP:

  • 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 ou classes de serviço 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 controladores de perfil podem usar IOCTL_BTH_SDP_SERVICE_SEARCH e IOCTL_BTH_SDP_ATTRIBUTE_SEARCH para reduzir a quantidade de tráfego SDP transmitido através de um link Bluetooth e podem extrair as informações necessárias usando um pequeno número de unidades máximas de transferência (MTUs). Se nenhum desses problemas for motivo de grande preocupação, pode ser mais conveniente para os drivers de perfil ligar para 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 pode 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 precisam usar SDP para obter o PSM. No entanto, os drivers de perfil de cliente L2CAP ainda podem usar SDP para obter os atributos do servidor SDP.

Quando o driver de perfil terminar a pesquisa, ele deve usar IOCTL_BTH_SDP_DISCONNECT para se desconectar do servidor SDP remoto.