SDP 서비스 정보 액세스

프로필 드라이버가 SDP를 사용하여 서비스를 보급하기 위해 SDP(서비스 검색 프로토콜) 레코드를 제출한 후 다른 디바이스는 레코드를 검색하거나 검색하여 이러한 서비스를 검색할 수 있습니다.

SDP 레코드를 검색하려면 클라이언트 프로필 드라이버가 먼저 IOCTL_BTH_SDP_CONNECT 사용하여 원격 디바이스의 SDP 서비스에 연결해야 합니다.

그런 다음 프로필 드라이버는 다음 IOCTL 중 하나를 사용하여 실제 SDP 레코드 검색을 수행할 수 있습니다.

  • IOCTL_BTH_SDP_ATTRIBUTE_SEARCH 지정된 SDP 특성 범위에 속하는 원격 SDP 레코드의 모든 구성 요소를 가져옵니다.

  • IOCTL_BTH_SDP_SERVICE_SEARCH 원격 디바이스에 SDP 요청을 실행하여 특정 서비스 클래스 또는 클래스의 SDP 레코드에 대한 핸들을 요청합니다.

  • IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH IOCTL_BTH_SDP_ATTRIBUTE_SEARCH 및 IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH 결합하고 단일 작업에서 사용 가능한 SDP 레코드 스트림을 반환합니다.

프로필 드라이버는 IOCTL_BTH_SDP_SERVICE_SEARCH 및 IOCTL_BTH_SDP_ATTRIBUTE_SEARCH 사용하여 Bluetooth 링크를 통해 전송되는 SDP 트래픽의 양을 줄이고 적은 수의 MTU(최대 전송 단위)를 사용하여 필요한 정보를 추출할 수 있습니다. 이러한 문제 중 어느 것도 큰 문제가 되지 않으면 프로필 드라이버가 IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH 호출하는 것이 더 편리할 수 있습니다.

프로필 드라이버가 원하는 서비스에 대한 동적 프로토콜/서비스 멀티플렉서(PSM)를 가져온 후에는 BRB_L2CA_OPEN_CHANNEL BRB를 사용하여 원격 서비스에 연결할 수 있습니다.

참고

서비스에 고정된 PSM이 있는 경우 L2CAP 클라이언트 프로필 드라이버는 SDP를 사용하여 PSM을 가져올 필요가 없습니다. 그러나 L2CAP 클라이언트 프로필 드라이버는 여전히 SDP를 사용하여 SDP 서버 특성을 가져올 수 있습니다.

프로필 드라이버가 검색을 완료하면 IOCTL_BTH_SDP_DISCONNECT 사용하여 원격 SDP 서버에서 연결을 끊어야 합니다.