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


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

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

Функции WSALookupServiceBegin и функции WSALookupServiceNex t используют структуру WSAQUERYSET для получения данных о процессе запроса службы. В следующей таблице описывается, как задать значения элементов в структуре WSAQUERYSET для этой цели.

Член Входные данные в WSALookupServiceBegin Возвращенное значение из WSALookupServiceNext
dwSize Необходимо задать значение размера(WSAQUERYSET). sizeof(WSAQUERYSET) возвращается системой.
dwOutputFlags Не используется. Не используется.
lpszServiceInstanceName Не используется. Отображаемое имя службы, преобразованное в кодировку UTF-8 из кодировки языка по умолчанию атрибута SDP Bluetooth ServiceName. Возвращается, если указан LUP_RETURN_NAME.
lpServiceClassId Обязательно. Самый конкретный отдельный UUID Bluetooth для служб, для которых выполняется поиск. Например, если для этого значения задано значение UUID протокола L2CAP, он возвращает все службы, использующие протокол L2CAP на целевом устройстве. Если задано значение UUID определенной службы, он вернет только экземпляры этой службы. Не используется.
lpVersion Не используется. Не используется.
lpszComment Не используется. Описание службы, преобразованной в кодировку UTF-8 из кодировки языка по умолчанию атрибута SDP Bluetooth ServiceDescription. Возвращается, если указан LUP_RETURN_COMMENT.
dwNameSpace Должно быть NS_BTH. Возвращает NS_BTH.
lpNSProviderId Не используется. Не используется.
lpszContext Обязательно. Адрес устройства Bluetooth, с помощью которого необходимо установить подключение SDP и запросить службы. Это значение должно быть строкой, преобразованной с помощью вызова функции WSAAddressToString. Если указан локальный адрес устройства Bluetooth, выполняется поиск в локальной базе данных SDP. Не используется.
dwNumberOfProtocols Не используется. Не используется.
lpafpProtocols Не используется. Не используется.
lpszQueryString Не используется. Не используется.
dwNumberOfCsAddrs Не используется. Указывает количество элементов в массиве CSADDR_INFO структур.
lpcsaBuffer Не используется. Указатель на структуру CSADDR_INFO, LocalAddr.lpSockaddr указывает на SOCKADDR_BTH, содержащую полный подключенный адрес удаленной службы, преобразованный из первой записи атрибута SDP Bluetooth ProtocolDescriptorList. Возвращается, если указан LUP_RETURN_ADDR.
lpBlob Необязательный. Указатель на структуру BTH_QUERY_SERVICE, содержащую расширенные параметры, чтобы ограничить результаты поиска. При условии lpServiceClassId игнорируется и кэшированные запросы не выполняются.
  • Если выполняется поиск службы: указатель на структуру BLOB, возвращающую дескриптор службы. (BLOB.cbSize)/sizeof(ULONG) вычисляет количество дескрипторов. BLOB.pBlobData представляет собой массив значений ULONG, представляющих дескриптор службы.
  • Если выполняется поиск атрибута или serviceAttribute: указатель на структуру BLOB, возвращающую двоичную запись SDP. BLOB.cbSize — это размер двоичной записи SDP. BLOB.pBlobData указывает на саму запись. Двоичная запись SDP необходима во многих случаях, так как преобразуется только ограниченное количество атрибутов SDP в структуру WSAQUERYSET и преобразуются только строки UTF-8 по умолчанию. Функции для анализа двоичной записи SDP предоставляются в разделе Справочник по Bluetooth.
  • Возвращается, если указан LUP_RETURN_BLOB.

 

Bluetooth и WSAQUERYSET для задания

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

Bluetooth и BLOB

Bluetooth и WSALookupServiceBegin

Bluetooth и WSALookupServiceNext

Справочник по Bluetooth

BLOB

BTH_QUERY_SERVICE

CSADDR_INFO

SOCKADDR_BTH

WSAAddressToString

WSAQUERYSET

сокеты Windows