Compartir a través de


Función BluetoothGATTSetDescriptorValue (bluetoothleapis.h)

La función BluetoothGATTSetDescriptorValue escribe el valor de descriptor especificado en el dispositivo Bluetooth.

Sintaxis

HRESULT BluetoothGATTSetDescriptorValue(
  [in] HANDLE                        hDevice,
  [in] PBTH_LE_GATT_DESCRIPTOR       Descriptor,
  [in] PBTH_LE_GATT_DESCRIPTOR_VALUE DescriptorValue,
  [in] ULONG                         Flags
);

Parámetros

[in] hDevice

Identificador del servicio.

[in] Descriptor

Puntero al descriptor primario.

[in] DescriptorValue

Puntero al valor del descriptor.

[in] Flags

Marcas para modificar el comportamiento de BluetoothGATTSetDescriptorValue:

Marca Descripción
BLUETOOTH_GATT_FLAG_NONE El cliente no tiene requisitos gatt específicos (valor predeterminado).
BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED El cliente solicita que los datos se transmitan a través de un canal cifrado.
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED El cliente solicita que los datos se transmitan a través de un canal autenticado.

Valor devuelto

La función BluetoothGATTSetDescriptorValue devuelve los valores siguientes:

Código devuelto Descripción
S_OK
La operación se ha completado correctamente.
ERROR_ACCESS_DENIED
Se devuelve si se proporciona un servicio primario y un identificador de servicio y la jerarquía de servicios no se acumula en el identificador de servicio primario proporcionado.
ERROR_INVALID_PARAMETER
Un parámetro no era válido.
ERROR_BAD_NET_RESP
El servidor de destino no proporcionó una respuesta de red adecuada.
ERROR_SEM_TIMEOUT
Se agota el tiempo de espera de la solicitud.
ERROR_NO_SYSTEM_RESOURCES
La operación se quedó sin memoria.
E_BLUETOOTH_ATT_INVALID_HANDLE
El identificador de atributo especificado no era válido en este servidor.
E_BLUETOOTH_ATT_READ_NOT_PERMITTED
El atributo no se puede leer.
E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED
El atributo no se puede escribir.
E_BLUETOOTH_ATT_INVALID_PDU
El atributo PDU no era válido.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION
El atributo requiere autenticación antes de que se pueda leer o escribir.
E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED
El servidor de atributos no admite la solicitud recibida del cliente.
E_BLUETOOTH_ATT_INVALID_OFFSET
Offset especificado fue pasado el final del atributo.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION
El atributo requiere autorización para que se pueda leer o escribir.
E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL
Se han puesto en cola demasiadas escrituras de preparación.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND
No se encontró ningún atributo dentro del intervalo de identificadores de atributo especificado.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG
El atributo no se puede leer ni escribir mediante la solicitud de blob de lectura.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE
El tamaño de clave de cifrado que se usa para cifrar este vínculo no es suficiente.
E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH
La longitud del valor del atributo no es válida para la operación.
E_BLUETOOTH_ATT_UNLIKELY
La solicitud de atributo solicitada ha encontrado un error poco probable y, por lo tanto, no se pudo completar como se solicitó.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION
El atributo requiere cifrado antes de que se pueda leer o escribir.
E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE
El tipo de atributo no es un atributo de agrupación admitido según lo definido por una especificación de capa superior.
E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES
Recursos insuficientes para completar la solicitud.
E_BLUETOOTH_ATT_UNKNOWN_ERROR
Error que se encuentra en el intervalo reservado.

Comentarios

El descriptor primario debe devolverse desde una llamada anterior a BluetoothGATTGetDescriptors y no debe modificarse. El comportamiento no está definido si el autor de la llamada lo hace.

Ejemplo


BTH_LE_GATT_DESCRIPTOR_VALUE newValue;

RtlZeroMemory(&newValue, sizeof(newValue));

newValue.DescriptorType = ClientCharacteristicConfiguration;
newValue.ClientCharacteristicConfiguration.IsSubscribeToNotification = TRUE;

// Subscribe to an event.
hr = BluetoothGATTSetDescriptorValue(hDevice, 
                                parentDescriptor, 
                                &newValue,
                                BLUETOOTH_GATT_FLAG_NONE);

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con Windows 8 y versiones posteriores de Windows.
Plataforma de destino Universal
Encabezado bluetoothleapis.h
Library BluetoothApis.lib
Archivo DLL BluetoothAPIs.dll

Consulte también

BTH_LE_GATT_DESCRIPTOR

BTH_LE_GATT_DESCRIPTOR_VALUE