Bluetooth und WSAQUERYSET für Set Service
Bluetooth verwendet die WSAQUERYSET-Struktur, um die Ermittlung von Geräten und Diensten im Bluetooth Namespace NS BTH zu _ erleichtern.
Die WSASetService-Funktion verwendet die WSAQUERYSET-Struktur, um Dienstinstanzen im Bluetooth-Namespace zu registrieren oder zu entfernen. In der folgenden Tabelle sind Die Memberwerte in der WSAQUERYSET-Struktur aufgeführt.
| Member | Erforderlicher Wert (Eingabe) | Ausgabe |
|---|---|---|
| dwSize | Muss auf sizeof festgelegt werden (WSAQUERYSET). Wird als Versionsausgleichsmechanismus verwendet. | Keine. |
| dwOutputFlags | Wird nicht verwendet. | Keine. |
| lpszServiceInstanceName | Optional, wird jedoch empfohlen. Wird verwendet, um das Bluetooth ServiceName-Attribut zu erstellen. | Keine. |
| lpServiceClassId | Erforderlich. GUID, die der Dienstklasse entspricht. Dieser Wert sollte einer GUID aus dem Dokument Bluetooth Zugewiesene Zahlen für bekannte Profile oder einer eindeutigen anwendungsgenerierten UUID für Anwendungen entsprechen, die nicht profilbasiert sind. Wird verwendet, um eine ServiceClassIdList-Attributsequenz mit diesem als einzigem Member zu erstellen. | Keine. |
| lpVersion | Wird nicht verwendet. | Keine. |
| lpszComment | Optional. Wird verwendet, um das Bluetooth ServiceDescription-Attribut zu erstellen. | Keine. |
| dwNameSpace | Namespace, in dem der Dienst eingeschränkt werden soll. Muss NS _ BTH sein. | Keine. |
| lpNSProviderId | Nicht erforderlich. | Keine. |
| lpszContext | Wird nicht verwendet. | Keine. |
| dwNumberOfProtocols | Wird nicht verwendet. | Keine. |
| lpafpProtocols | Wird nicht verwendet. | Keine. |
| lpszQueryString | Wird nicht verwendet. | Keine. |
| dwNumberOfCsAddrs | Anzahl der zu registrierende Adressen. Muss 1 sein. | Keine. |
| lpcsaBuffer | Erforderlich, wenn lpBlob nicht mit einem unformatierten SDP-Datenstrom aufgefüllt wurde. Zeiger auf eine CSADDR _ INFO-Struktur mit dem zugehörigen LocalAddr.lpSockaddr-Member, der auf die SOCKADDR _ BTH zeigt, in der der Server auf Verbindungen lauscht. Die getsockname-Funktion kann verwendet werden, um die SOCKADDR-BTH-Struktur _ für einen gebundenen Socket zurückzugeben. Informationen im lpcsaBuffer-Member werden vom System verwendet, um das Bluetooth ProtocolDescriptorList-SDP-Attribut zu erstellen. Das in lpcsaBuffer bereitgestellte Protokoll und der Port müssen eindeutig sein (nicht zuvor registriert) und werden verwendet, um den Datensatz für nachfolgende Aufrufe zum Löschen zu indizieren. Wird verwendet, um das Bluetooth ProtocolDescriptorList-Attribut des SDP-Datensatzes zu erstellen. | Keine. |
| lpBlob | Optional. Zeiger auf eine BLOB-Struktur, die auf eine BTH _ SET _ SERVICE-Struktur zeigt, sodass der Client eine Bluetooth spezifische Struktur bereitstellen kann, die einen von der Anwendung erstellten binären SDP-Datensatz enthält. Wenn lpBlob für die WSASetService-Funktion bereitgestellt wird, werden alle anderen Member der WSAQUERYSET-Struktur außer dwSize und dwNameSpace ignoriert. Weitere Informationen finden Sie unter Bluetooth und BLOB. Die Übermittlung eines binären SDP-Datensatzes ist in vielen Fällen erforderlich, da eine begrenzte Anzahl von SDP-Attributen aus der WSAQUERYSET-Struktur konvertiert werden kann und Zeichenfolgen nur in die UTF-8-Standardsprache konvertiert werden. | Wenn die optionalen BLOB- und BTH _ SET _ SERVICE-Strukturen bei der Eingabe zusammen mit den ULONG-Version- und HANDLE-Werten bereitgestellt wurden, auf die von BTH _ SET _ SERVICE verwiesen werden muss, wird die Version so aktualisiert, dass sie den _ _ BTH-SDP-VERSION-Wert für den Bluetooth Windows Sockets-Anbieter enthält, und das Handle wird bereitgestellt, was erforderlich ist, um den Datensatz anschließend zu löschen. |
Hinweis
Um einen Dienst zu entfernen, sind die einzigen erforderlichen Member in der BTH _ SET _ SERVICE-Struktur die Member pSdpVersion und pRecordHandle.