Bluetooth и WSAQUERYSET для установки службы
Bluetooth использует структуруWSAQUERYSETдля упрощения обнаружения устройств и служб в пространстве имен Bluetooth, NS_BTH.
ФункцияWSASetServiceиспользует структур у WSAQUERYSET для регистрации или удаления экземпляров служб в пространстве имен Bluetooth. В следующей таблице перечислены значения элементов в структуре WSAQUERYSET.
Член | Обязательное значение (входные данные) | Выпуск |
---|---|---|
dwSize | Необходимо задать значение размера(WSAQUERYSET). Используется в качестве механизма управления версиями. | Никакой. |
dwOutputFlags | Не используется. | Никакой. |
lpszServiceInstanceName | Необязательно, но рекомендуется. Используется для создания атрибута Bluetooth ServiceName. | Никакой. |
lpServiceClassId | Обязательно. GUID, соответствующий классу службы. Это значение должно соответствовать GUID из документа "Назначенные номера Bluetooth" для известных профилей или уникального идентификатора UUID, созданного приложением для приложений, которые не основаны на профилях. Используется для создания последовательности атрибутов ServiceClassIdList с этим элементом. | Никакой. |
lpVersion | Не используется. | Никакой. |
lpszComment | Необязательный. Используется для создания атрибута Bluetooth ServiceDescription. | Никакой. |
dwNameSpace | Пространство имен, в котором необходимо ограничить службу. Должно быть NS_BTH. | Никакой. |
lpNSProviderId | Не требуется. | Никакой. |
lpszContext | Не используется. | Никакой. |
dwNumberOfProtocols | Не используется. | Никакой. |
lpafpProtocols | Не используется. | Никакой. |
lpszQueryString | Не используется. | Никакой. |
dwNumberOfCsAddrs | Количество адресов для регистрации. Должно быть 1. | Никакой. |
lpcsaBuffer | Требуется, если lpBlob не заполнены необработанным потоком SDP. Указатель на структуру CSADDR_INFO со своим LocalAddr.lpSockaddr, указывающим на SOCKADDR_BTH, где сервер прослушивает подключения. Функцию получает имя-имя можно использовать для возврата структуры SOCKADDR_BTH для связанного сокета. Сведения в элементе lpcsaBuffer используются системой для создания атрибута SDP Bluetooth ProtocolDescriptorList. Протокол и порт, предоставленные в lpcsaBuffer, должны быть уникальными (не зарегистрированными ранее) и используются для индексирования записи для последующих вызовов удаления. Используется для создания атрибута Bluetooth ProtocolDescriptorList записи SDP. | Никакой. |
lpBlob | Необязательный. Указатель на структуру BLOB, которая указывает на структуру BTH_SET_SERVICE, что позволяет клиенту предоставить структуру Bluetooth, содержащую двоичную запись SDP, созданную приложением. Если lpBlob предоставляется функции WSASetService, все остальные член ы структуры WSAQUERYSET, кроме dwSize и dwNameSpace игнорируются. Дополнительные сведения см. в Bluetooth и BLOB. Отправка двоичной записи SDP во многих случаях необходима, так как ограниченное количество атрибутов SDP можно преобразовать из структуры WSAQUERYSET, а строки преобразуются только в кодировку UTF-8 по умолчанию. | Если необязательные BLOB и BTH_SET_SERVICE структуры были предоставлены для входных данных, а также значения ULONG и HANDLE, которые должны указываться BTH_SET_SERVICE, версия обновляется, чтобы она содержала BTH_SDP_VERSION значение поставщика сокетов Bluetooth Windows, и предоставляется дескриптор, который требуется для последующего удаления записи. |
Заметка
Чтобы удалить службу, единственными необходимыми элементами в структуре BTH_SET_SERVICE являются pSdpVersion и элементы pRecordHandle.
Связанные разделы