Share via


服務查詢的 藍牙 和 WSAQUERYSET

藍牙 使用WSAQUERYSET 結構具有各種函式,可協助探索 藍牙 命名空間中的裝置和服務,NS_BTH。

WSALookupServiceBegin WSALookupServiceNext 函式會使用 WSAQUERYSET 結構來取得服務查詢程式的相關數據。 下表說明如何為此目的,在 WSAQUERYSET 結構中設定成員值。

member 輸入 WSALookupServiceBegin 從 WSALookupServiceNext 傳回的值
dwSize 必須設定為 sizeofWSAQUERYSET)。 由系統傳回的 sizeofWSAQUERYSET)。
dwOutputFlags 未使用。 未使用。
lpszServiceInstanceName 未使用。 服務的顯示名稱,從 藍牙 serviceName SDP 屬性的預設語言編碼方式轉換成 UTF-8 編碼字串。 如果指定了LUP_RETURN_NAME,則傳回 。
lpServiceClassId 必要。 進行搜尋之服務的最特定單一 藍牙 UUID。 例如,如果此值設定為 L2CAP 通訊協定的 UUID,則會使用目標裝置上的 L2CAP 通訊協定傳回所有服務。 如果設定為特定服務的 UUID,它只會傳回該服務的實例。 未使用。
lpVersion 未使用。 未使用。
lpszComment 未使用。 服務的描述,從 藍牙 ServiceDescription SDP 屬性的預設語言編碼轉換成 UTF-8 編碼字串。 如果 指定LUP_RETURN_COMMENT ,則傳回 。
dwNameSpace 必須是NS_BTH。 傳回NS_BTH。
lpNSProviderId 未使用。 未使用。
lpszContext 必要。 用來建立 SDP 連線並查詢服務的 藍牙 裝置位址。 這個值必須是使用 WSAAddressToString 函數呼叫所轉換的字串。 如果提供本機 藍牙 裝置位址,則會搜尋本機 SDP 資料庫。 未使用。
dwNumberOfProtocols 未使用。 未使用。
lpafpProtocols 未使用。 未使用。
lpszQueryString 未使用。 未使用。
dwNumberOfCsAddrs 未使用。 指出CSADDR_INFO結構陣列中的項目數目。
lpcsaBuffer 未使用。 CSADDR_INFO結構的指標,其LocalAddr.lpSockaddr成員指向包含遠端服務完整可連線位址的SOCKADDR_BTH,從藍牙 ProtocolDescriptorList SDP 屬性的第一個項目轉換。 如果 指定LUP_RETURN_ADDR ,則傳回 。
lpBlob 選擇性。 包含進階參數以限制搜尋結果之BTH_QUERY_SERVICE結構的指標。 如果提供, 則會忽略 lpServiceClassId ,且快取的查詢不會成功。
  • 如果執行服務搜尋:傳回服務句柄之 BLOB 結構的指標BLOB.cbSize)/sizeof(ULONG) 會計算句柄數目。 BLOB.pBlobData 是代表服務句柄的 ULONG 值陣列。
  • 如果執行屬性或服務Attribute 搜尋:傳回二進位 SDP 記錄之 BLOB 結構的指標 BLOB.cbSize 是二進位 SDP 記錄的大小。 BLOB.pBlobData 會指向記錄本身。 在許多情況下,二進位 SDP 記錄是必要的,因為只有有限的 SDP 屬性可以轉換成 WSAQUERYSET 結構,而且只會轉換預設編碼的 UTF-8 字串串。 藍牙 參考區段中會提供協助剖析二進位 SDP 記錄的函式。
  • 如果指定LUP_RETURN_BLOB,則傳回 。

 

set Service 的 藍牙 和 WSAQUERYSET

適用於裝置查詢的 藍牙和 WSAQUERYSET

藍牙 和 BLOB

藍牙 和 WSALookupServiceBegin

藍牙 和 WSALookupServiceNext

藍牙 參考

Blob

BTH_QUERY_SERVICE

CSADDR_INFO

SOCKADDR_BTH

WSAAddressToString

WSAQUERYSET

Windows Sockets