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.
См. также