Partager via


Fonction BluetoothGATTSetCharacteristicValue (bluetoothleapis.h)

La fonction BluetoothGATTSetCharacteristicValue écrit la valeur caractéristique spécifiée sur l’appareil Bluetooth.

Syntaxe

HRESULT BluetoothGATTSetCharacteristicValue(
  [in]           HANDLE                             hDevice,
  [in]           PBTH_LE_GATT_CHARACTERISTIC        Characteristic,
  [in]           PBTH_LE_GATT_CHARACTERISTIC_VALUE  CharacteristicValue,
  [in, optional] BTH_LE_GATT_RELIABLE_WRITE_CONTEXT ReliableWriteContext,
  [in]           ULONG                              Flags
);

Paramètres

[in] hDevice

Gérez le service.

[in] Characteristic

Pointeur vers BTH_LE_GATT_CHARACTERISTIC structure contenant la caractéristique parente.

[in] CharacteristicValue

Pointeur vers BTH_LE_GATT_CHARACTERISTIC_VALUE structure contenant la valeur caractéristique.

[in, optional] ReliableWriteContext

BTH_LE_GATT_RELIABLE_WRITE_CONTEXT structure contenant le contexte décrivant l’opération d’écriture fiable retournée à partir d’un appel précédent à BluetoothGATTBegin ReliableWrite.

[in] Flags

Indicateurs pour modifier le comportement de BluetoothGATTSetCharacteristicValue :

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 sur un canal chiffré.
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED Le client demande que les données soient transmises sur un canal authentifié.
BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE Écrire sans réponse.
BLUETOOTH_GATT_FLAG_SIGNED_WRITE Écriture signée. Les pilotes de profil doivent utiliser avec BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE afin de produire une écriture signée sans réponse.

Valeur retournée

La fonction BluetoothGATTSetCharacteristicValue 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.
ERROR_INVALID_FUNCTION
Une opération d’écriture fiable est déjà en cours.
E_BLUETOOTH_ATT_INVALID_HANDLE
Le handle d’attribut donné n’était pas valide sur ce serveur.
E_BLUETOOTH_ATT_READ_NOT_PERMITTED
Impossible de lire l’attribut.
E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED
L’attribut ne peut pas être écrit.
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 clé de chiffrement utilisée pour chiffrer ce lien est insuffisante.
E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH
La longueur de la valeur de l’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

L’appel de BluetoothGATTSetCharacteristicValue après BluetoothGATTBegin ReliableWrite avertit l’appareil Bluetooth distant de stocker cette demande dans une file d’attente de préparation sur l’appareil.

Si la signature est requise, l’opération ne doit pas nécessiter de réponse et ne doit pas se produire sur un canal sécurisé.

La caractéristique parente est retournée à partir d’un appel précédent à BluetoothGATTGetCharacteristics et ne doit pas être modifiée. Le comportement n’est pas défini si l’appelant effectue cette opération.

Exemple


BTH_LE_GATT_CHARACTERISTIC_VALUE newValue;

RtlZeroMemory(&newValue,(sizeof(newValue)));

newValue.DataSize = sizeof(valueData);
newValue.Data = (UCHAR*)&valueData;

// Set the new characteristic value
hr = BluetoothGATTSetCharacteristicValue(hDevice,
                                    parentCharacteristic,
                                    &newValue,
                                    NULL,
                                    BLUETOOTH_GATT_FLAG_NONE);

Configuration requise

   
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_CHARACTERISTIC

BTH_LE_GATT_CHARACTERISTIC_VALUE