Compartilhar via


Função BluetoothGATTSetDescriptorValue (bluetoothleapis.h)

A função BluetoothGATTSetDescriptorValue grava o valor do descritor especificado no dispositivo Bluetooth.

Sintaxe

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

Manipule para o serviço.

[in] Descriptor

Ponteiro para o descritor pai.

[in] DescriptorValue

Ponteiro para o valor do descritor.

[in] Flags

Sinalizadores para modificar o comportamento de BluetoothGATTSetDescriptorValue:

Sinalizador Descrição
BLUETOOTH_GATT_FLAG_NONE O cliente não tem requisitos de GATT específicos (padrão).
BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED O cliente solicita que os dados sejam transmitidos por um canal criptografado.
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED O cliente solicita que os dados sejam transmitidos por um canal autenticado.

Retornar valor

A função BluetoothGATTSetDescriptorValue retorna os seguintes valores:

Código de retorno Descrição
S_OK
A operação foi concluída com sucesso.
ERROR_ACCESS_DENIED
Retornado se um serviço pai e um identificador de serviço forem fornecidos e a hierarquia de serviço não for acumulada para o identificador de serviço pai fornecido.
ERROR_INVALID_PARAMETER
Um parâmetro era inválido.
ERROR_BAD_NET_RESP
O servidor de destino não forneceu uma resposta de rede apropriada.
ERROR_SEM_TIMEOUT
O tempo limite da solicitação.
ERROR_NO_SYSTEM_RESOURCES
A operação ficou sem memória.
E_BLUETOOTH_ATT_INVALID_HANDLE
O identificador de atributo dado não era válido neste servidor.
E_BLUETOOTH_ATT_READ_NOT_PERMITTED
O atributo não pode ser lido.
E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED
O atributo não pode ser gravado.
E_BLUETOOTH_ATT_INVALID_PDU
A PDU do atributo era inválida.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION
O atributo requer autenticação antes de ser lido ou gravado.
E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED
O servidor de atributo não dá suporte à solicitação recebida do cliente.
E_BLUETOOTH_ATT_INVALID_OFFSET
O deslocamento especificado foi passado do final do atributo.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION
O atributo requer autorização antes de ser lido ou gravado.
E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL
Muitas gravações de preparação foram enfileiradas.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND
Nenhum atributo encontrado no intervalo de identificador de atributo fornecido.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG
O atributo não pode ser lido ou gravado usando a Solicitação de Blob de Leitura.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE
O Tamanho da Chave de Criptografia usado para criptografar esse link é insuficiente.
E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH
O comprimento do valor do atributo é inválido para a operação.
E_BLUETOOTH_ATT_UNLIKELY
A solicitação de atributo solicitada encontrou um erro que era improvável e, portanto, não pôde ser concluída conforme solicitado.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION
O atributo requer criptografia antes de ser lido ou gravado.
E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE
O tipo de atributo não é um atributo de agrupamento com suporte, conforme definido por uma especificação de camada mais alta.
E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES
Recursos insuficientes para concluir a solicitação.
E_BLUETOOTH_ATT_UNKNOWN_ERROR
Um erro que está no intervalo reservado foi recebido.

Comentários

O descritor pai deve ser retornado de uma chamada anterior para BluetoothGATTGetDescriptors e não deve ser alterado. O comportamento será indefinido se o chamador fizer isso.

Exemplo


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 Valor
Cliente mínimo com suporte Com suporte em Windows 8 e versões posteriores do Windows.
Plataforma de Destino Universal
Cabeçalho bluetoothleapis.h
Biblioteca BluetoothApis.lib
DLL BluetoothAPIs.dll

Confira também

BTH_LE_GATT_DESCRIPTOR

BTH_LE_GATT_DESCRIPTOR_VALUE