Поделиться через


Bluetooth и WSAQUERYSET для установки службы

Bluetooth использует структуру WSAQUERYSET для упрощения обнаружения устройств и служб в пространстве имен Bluetooth, NS_BTH.

Функция WSASetService использует структуру WSAQUERYSET для регистрации или удаления экземпляров служб в пространстве имен Bluetooth. В следующей таблице перечислены значения элементов в структуре WSAQUERYSET .

Элемент Обязательное значение (входные данные) Выходные данные
dwSize Необходимо задать значение sizeof(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 где сервер прослушивает подключения. Функцию getsockname можно использовать для возврата структуры 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.

 

Bluetooth и WSAQUERYSET для запроса устройства

Bluetooth и WSAQUERYSET для запроса на обслуживание

Bluetooth и BLOB

Bluetooth и WSASetService

BLOB

BTH_SET_SERVICE

CSADDR_INFO

getsockname

SOCKADDR_BTH

WSAQUERYSET

Сокеты Windows