藍牙和 WSALookupServiceBegin 進行裝置查詢
本主題描述如何使用 WSALookupServiceBegin 函式來執行可見和準刪除裝置的查詢。 如需詳細資訊,請參閱 探索藍牙裝置和服務。
WSALookupServiceBegin 函式會在其第一個參數 lpqsRestrictions中使用 WSAQUERYSET 結構來定義搜尋準則。 藍牙提供使用 WSALookupServiceBegin 函式和 WSAQUERYSET的特定指導方針。
下表列出套用至查詢裝置時傳遞至 lpqsRestrictions 參數 WSAQUERYSET 結構的限制。
WSAQUERYSET 成員 | 限制 |
---|---|
dwSize | 設定為 sizeof(WSAQUERYSET]。 |
lpBlob | 此成員包含 BLOB 結構的選擇性指標。 如果指定此成員,LUP_FLUSHCACHE 的有效裝置查詢參數如下所示:
|
dwNameSpace | 設定為 NS_BTH。 |
其他成員 | 系統會忽略 WSAQUERYSET 結構的其他成員。 |
下表所列的旗標會用於 dwControlFlags 參數來控制查詢結果。 WSALookupServiceBegin 函式會使用 LUP_CONTAINERS 和 LUP_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 | 略過下一個可用的裝置,並傳回後續的裝置。 |
相關主題