當配置檔驅動程式提交服務探索通訊協定(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來減少透過藍牙連結傳輸的 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 伺服器中斷連線。