Partager via


Fonction BluetoothGATTSetDescriptorValue (bluetoothleapis.h)

La fonction BluetoothGATTSetDescriptorValue écrit la valeur de descripteur spécifiée sur l’appareil Bluetooth.

Syntaxe

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

Paramètres

[in] hDevice

Handle au service.

[in] Descriptor

Pointeur vers le descripteur parent.

[in] DescriptorValue

Pointeur vers la valeur du descripteur.

[in] Flags

Indicateurs permettant de modifier le comportement de BluetoothGATTSetDescriptorValue :

Indicateur Description
BLUETOOTH_GATT_FLAG_NONE Le client n’a pas d’exigences GATT spécifiques (par défaut).
BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED Le client demande que les données soient transmises via un canal chiffré.
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED Le client demande que les données soient transmises via un canal authentifié.

Valeur retournée

La fonction BluetoothGATTSetDescriptorValue retourne les valeurs suivantes :

Code de retour Description
S_OK
L’opération s’est terminée avec succès.
ERROR_ACCESS_DENIED
Retourné si un service parent et un handle de service sont fournis et que la hiérarchie de service ne se cumule pas sur le handle de service parent fourni.
ERROR_INVALID_PARAMETER
Un paramètre était non valide.
ERROR_BAD_NET_RESP
Le serveur cible n’a pas fourni de réponse réseau appropriée.
ERROR_SEM_TIMEOUT
La requête a expiré.
ERROR_NO_SYSTEM_RESOURCES
L’opération a manqué de mémoire.
E_BLUETOOTH_ATT_INVALID_HANDLE
Le handle d’attribut donné n’était pas valide sur ce serveur.
E_BLUETOOTH_ATT_READ_NOT_PERMITTED
L’attribut ne peut pas être lu.
E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED
Impossible d’écrire l’attribut.
E_BLUETOOTH_ATT_INVALID_PDU
L’attribut PDU n’était pas valide.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION
L’attribut nécessite une authentification avant de pouvoir être lu ou écrit.
E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED
Le serveur d’attributs ne prend pas en charge la demande reçue du client.
E_BLUETOOTH_ATT_INVALID_OFFSET
Le décalage spécifié a dépassé la fin de l’attribut.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION
L’attribut nécessite une autorisation avant de pouvoir être lu ou écrit.
E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL
Trop d’écritures de préparation ont été mises en file d’attente.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND
Aucun attribut trouvé dans la plage de handle d’attribut donnée.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG
L’attribut ne peut pas être lu ou écrit à l’aide de la demande de lecture d’objet blob.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE
La taille de la clé de chiffrement utilisée pour chiffrer ce lien est insuffisante.
E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH
La longueur de la valeur d’attribut n’est pas valide pour l’opération.
E_BLUETOOTH_ATT_UNLIKELY
La demande d’attribut demandée a rencontré une erreur peu probable et n’a donc pas pu être effectuée comme demandé.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION
L’attribut nécessite un chiffrement avant de pouvoir être lu ou écrit.
E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE
Le type d’attribut n’est pas un attribut de regroupement pris en charge tel que défini par une spécification de couche supérieure.
E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES
Ressources insuffisantes pour terminer la demande.
E_BLUETOOTH_ATT_UNKNOWN_ERROR
Une erreur qui se trouve dans la plage réservée a été reçue.

Remarques

Le descripteur parent doit être retourné à partir d’un appel précédent à BluetoothGATTGetDescriptors et ne doit pas être modifié. Le comportement n’est pas défini si l’appelant effectue cette opération.

Exemple


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);

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans Windows 8 et versions ultérieures de Windows.
Plateforme cible Universal
En-tête bluetoothleapis.h
Bibliothèque BluetoothApis.lib
DLL BluetoothAPIs.dll

Voir aussi

BTH_LE_GATT_DESCRIPTOR

BTH_LE_GATT_DESCRIPTOR_VALUE