共用方式為


藍牙和 WSALookupServiceBegin 進行裝置查詢

本主題描述如何使用 WSALookupServiceBegin 函式來執行可見和準刪除裝置的查詢。 如需詳細資訊,請參閱 探索藍牙裝置和服務

WSALookupServiceBegin 函式會在其第一個參數 lpqsRestrictions中使用 WSAQUERYSET 結構來定義搜尋準則。 藍牙提供使用 WSALookupServiceBegin 函式和 WSAQUERYSET的特定指導方針。

下表列出套用至查詢裝置時傳遞至 lpqsRestrictions 參數 WSAQUERYSET 結構的限制。

WSAQUERYSET 成員 限制
dwSize 設定為 sizeofWSAQUERYSET]。
lpBlob 此成員包含 BLOB 結構的選擇性指標。 如果指定此成員,LUP_FLUSHCACHE 的有效裝置查詢參數如下所示:
  • BLOB 結構的 cbSize 成員必須 sizeofBTH_QUERY_DEVICE)。
  • pBlobData 成員是 BTH_QUERY_DEVICE 結構的指標,其中 LAP 成員是藍牙查詢存取碼,而 長度 成員是查詢的長度,以秒為單位。
dwNameSpace 設定為 NS_BTH
其他成員 系統會忽略 WSAQUERYSET 結構的其他成員。

 

下表所列的旗標會用於 dwControlFlags 參數來控制查詢結果。 WSALookupServiceBegin 函式會使用 LUP_CONTAINERSLUP_FLUSHCACHE 旗標;其餘的旗標會用於呼叫 WSALookupServiceNext 函式。

結果
LUP_CONTAINERS 指定查詢的目的是取得藍牙裝置的清單,而不是服務清單。 必須設定此旗標。
LUP_FLUSHCACHE 觸發本機裝置的查詢,或導致傳回先前查詢的快取結果。
LUP_RETURN_TYPE 直接傳回 lpServiceClassIdWSAQUERYSET 結構成員中的藍牙 COD (裝置位類別)。 COD 會對應至 GUID Data1 成員。
LUP_RES_SERVICE 傳回本機藍牙地址的資訊。 只有在同時指定 LUP_RETURN_ADDR 時,此旗標才會生效。
LUP_RETURN_NAME 針對 WSALookupServiceNext 函式的每個呼叫,傳回 lpszServiceInstanceName 成員 WSAQUERYSET 結構中的裝置顯示名稱。 指定 LUP_RETURN_BLOB 旗標時,也必須指定此旗標來擷取 BTH_DEVICE_INFO 結構 成員 名稱。
LUP_RETURN_ADDR 傳回 SOCKADDR_BTH 結構,其中包含 lpcsaBuff er 中 WSAQUERYSET 結構中對等的 48 位位址,每個呼叫 WSALookupServiceNext 函式。 SOCKADDR_BTH 結構中的其他成員將會是空的。
LUP_RETURN_BLOB 在每個後續呼叫 WSALookupServiceNext傳回 BTH_DEVICE_INFO 結構。
LUP_FLUSHPREVIOUS 略過下一個可用的裝置,並傳回後續的裝置。

 

藍牙和 WSALookupServiceBegin for Service Discovery

藍牙和 WSALookupServiceNext

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

探索藍牙裝置和服務

WSALookupServiceBegin

WSALookupServiceNext

WSALookupServiceEnd

BLOB

BTH_QUERY_DEVICE

SOCKADDR_BTH

WSAQUERYSET

Windows Sockets