Bluetooth y WSAQUERYSET para la consulta del servicio

Bluetooth usa la estructura WSAQUERYSET , con varias funciones, para facilitar la detección de dispositivos y servicios en el espacio de nombres Bluetooth, NS_BTH.

Las funciones WSALookupServiceBegin y WSALookupServiceNext usan la estructura WSAQUERYSET para obtener datos sobre el proceso de consulta del servicio. En la tabla siguiente se describe cómo establecer los valores de miembro en la estructura WSAQUERYSET para este fin.

Miembro Entrada a WSALookupServiceBegin Valor devuelto de WSALookupServiceNext
dwSize Debe establecerse en sizeof(WSAQUERYSET). sizeof(WSAQUERYSET) devuelto por el sistema.
dwOutputFlags No se utiliza. No se utiliza.
lpszServiceInstanceName No se usa. Nombre para mostrar del servicio, convertido como una cadena codificada UTF-8 a partir de la codificación de idioma predeterminada del atributo SDP de Bluetooth ServiceName. Se devuelve si se especifica LUP_RETURN_NAME.
lpServiceClassId Necesario. El UUID de Bluetooth más específico para los servicios para los que se realiza la búsqueda. Por ejemplo, si este valor se establece en el UUID del protocolo L2CAP, devuelve todos los servicios mediante el protocolo L2CAP en el dispositivo de destino. Si se establece en el UUID de un servicio específico, devolverá solo las instancias de ese servicio. No se usa.
lpVersion No se utiliza. No se utiliza.
lpszComment No se usa. Descripción del servicio, convertido como una cadena codificada UTF-8 a partir de la codificación de idioma predeterminada del atributo SDP ServiceDescription de Bluetooth. Se devuelve si se especifica LUP_RETURN_COMMENT .
dwNameSpace Debe ser NS_BTH. Devuelve NS_BTH.
lpNSProviderId No se utiliza. No se utiliza.
lpszContext Necesario. La dirección del dispositivo Bluetooth con la que establecer una conexión SDP y consultar los servicios. Este valor debe ser una cadena que se convirtió mediante la llamada a la función WSAAddressToString . Si se proporciona la dirección del dispositivo Bluetooth local, se busca en la base de datos SDP local. No se usa.
dwNumberOfProtocols No se utiliza. No se utiliza.
lpafpProtocols No se utiliza. No se utiliza.
lpszQueryString No se utiliza. No se utiliza.
dwNumberOfCsAddrs No se usa. Indica el número de elementos de la matriz de estructuras de CSADDR_INFO .
lpcsaBuffer No se usa. Puntero a una estructura de CSADDR_INFO cuyo miembro LocalAddr.lpSockaddr apunta a un SOCKADDR_BTH que contiene la dirección conectable completa del servicio remoto, convertida a partir de la primera entrada del atributo SDP ProtocolDescriptorList de Bluetooth. Se devuelve si se especifica LUP_RETURN_ADDR .
lpBlob Opcional. Puntero a una estructura de BTH_QUERY_SERVICE que contiene parámetros avanzados para limitar los resultados de la búsqueda. Si se proporciona, lpServiceClassId se omite y las consultas almacenadas en caché no se realizan correctamente.
  • Si se realiza una búsqueda de servicio: puntero a una estructura BLOB que devuelve los identificadores del servicio. (BLOB.cbSize)/sizeof(ULONG) calcula el número de identificadores. BLOB.pBlobData es una matriz de valores de ULONG que representan los identificadores de servicio.
  • Si se realiza una búsqueda de atributo o serviceAttribute: puntero a una estructura BLOB que devuelve el registro SDP binario. BLOB.cbSize es el tamaño del registro SDP binario. BLOB.pBlobData apunta al propio registro. El registro SDP binario es necesario en muchos casos porque solo se pueden convertir un número limitado de atributos SDP en la estructura WSAQUERYSET y solo se convierten cadenas UTF-8 codificadas de forma predeterminada. Las funciones para ayudar a analizar el registro SDP binario se proporcionan en la sección Referencia de Bluetooth .
  • Se devuelve si se especifica LUP_RETURN_BLOB.

 

Bluetooth y WSAQUERYSET para Set Service

Bluetooth y WSAQUERYSET para la consulta de dispositivos

Bluetooth y BLOB

Bluetooth y WSALookupServiceBegin

Bluetooth y WSALookupServiceNext

Referencia de Bluetooth

BLOB

BTH_QUERY_SERVICE

CSADDR_INFO

SOCKADDR_BTH

WSAAddressToString

WSAQUERYSET

Windows Sockets