set Service 的 藍牙 和 WSAQUERYSET

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

WSASetService 函式會使用 WSAQUERYSET 結構來註冊或移除 藍牙 命名空間中的服務實例。 下表列出 WSAQUERYSET 結構中的成員值。

member 必要值(輸入) 輸出
dwSize 必須設定為 sizeofWSAQUERYSET)。 做為版本控制機制。 無。
dwOutputFlags 未使用。 無。
lpszServiceInstanceName 選擇性,但建議使用。 用來建構 藍牙 ServiceName 屬性。 無。
lpServiceClassId 必要。 對應至服務類別的 GUID。 此值應該對應至已知配置檔 藍牙 指派數位檔中的 GUID,或針對非配置檔型應用程式產生的唯一應用程式產生的 UUID。 用來建構 ServiceClassIdList 屬性序列,並以此作為唯一的成員。 無。
lpVersion 未使用。 無。
lpszComment 選擇性。 用來建構 藍牙 ServiceDescription 屬性。 無。
dwNameSpace 要在其中限制服務的命名空間。 必須是NS_BTH。 無。
lpNSProviderId 非必要。 無。
lpszContext 未使用。 無。
dwNumberOfProtocols 未使用。 無。
lpafpProtocols 未使用。 無。
lpszQueryString 未使用。 無。
dwNumberOfCsAddrs 要註冊的位址數目。 必須是 1。 無。
lpcsaBuffer 如果 lpBlob 尚未填入原始 SDP 數據流,則為必要專案。 CSADDR_INFO結構的指標,其LocalAddr.lpSockaddr成員指向伺服器正在接聽連接的SOCKADDR_BTH getsockname 函式可用來傳回系結套接字的SOCKADDR_BTH結構。 系統會使用 lpcsaBuffer 成員中的資訊來建構 藍牙 ProtocolDescriptorList SDP 屬性。 lpcsaBuffer提供的通訊協定和埠必須是唯一的(先前未註冊),並且用來編製記錄的索引,以供後續呼叫刪除。 用來建構 SDP 記錄 藍牙 ProtocolDescriptorList 屬性。 無。
lpBlob 選擇性。 指向BTH_SET_SERVICE結構的 BLOB 結構的指標,可讓用戶端提供 藍牙 特定結構,其中包含應用程式所建構的二進位 SDP 記錄。 如果 lpBlob 提供給 WSASetService 函式,則會忽略 dwSizedwNameSpace 以外的 WSAQUERYSET 結構所有其他成員。 如需詳細資訊,請參閱 藍牙 和 BLOB。 在許多情況下,提交二進位 SDP 記錄是必要的,因為可以從 WSAQUERYSET 結構轉換有限的 SDP 屬性,而且字串只會轉換成預設語言 UTF-8 編碼。 如果輸入上已提供選擇性的 BLOBBTH_SET_SERVICE結構,以及BTH_SET_SERVICE必須指向的 ULONG 版本和 HANDLE 值,則會更新版本以包含 藍牙 Windows Sockets 提供者的BTH_SDP_VERSION值,並提供句柄,這是後續刪除記錄所需的句柄。

 

注意

若要移除服務,BTH_SET_SERVICE結構中唯一的必要成員是 pSdpVersionpRecordHandle 成員。

 

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

服務查詢 藍牙和 WSAQUERYSET

藍牙 和 BLOB

藍牙 和 WSASetService

Blob

BTH_SET_SERVICE

CSADDR_INFO

getsockname

SOCKADDR_BTH

WSAQUERYSET

Windows Sockets