BluetoothGATTSetCharacteristicValue function (bluetoothleapis.h)
The BluetoothGATTSetCharacteristicValue function writes the specified characteristic value to the Bluetooth device.
Syntax
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
);
Parameters
[in] hDevice
Handle to the service.
[in] Characteristic
Pointer to BTH_LE_GATT_CHARACTERISTIC structure containing the parent characteristic.
[in] CharacteristicValue
Pointer to BTH_LE_GATT_CHARACTERISTIC_VALUE structure containing the characteristic value.
[in, optional] ReliableWriteContext
BTH_LE_GATT_RELIABLE_WRITE_CONTEXT structure containing the context describing the reliable write operation returned from a previous call to BluetoothGATTBeginReliableWrite.
[in] Flags
Flags to modify the behavior of BluetoothGATTSetCharacteristicValue:
Flag | Description |
---|---|
BLUETOOTH_GATT_FLAG_NONE | The client does not have specific GATT requirements (default). |
BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED | The client requests the data to be transmitted over an encrypted channel. |
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED | The client requests the data to be transmitted over an authenticated channel. |
BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE | Write without response. |
BLUETOOTH_GATT_FLAG_SIGNED_WRITE | Signed write. Profile drivers must use with BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE in order to produce signed write without a response. |
Return value
The BluetoothGATTSetCharacteristicValue function returns the following values:
Return code | Description |
---|---|
|
The operation completed successfully. |
|
Returned if both a parent service and a service handle are provided and the service hierarchy does not roll up to the provided parent service handle. |
|
A parameter was invalid. |
|
The target server did not provide an appropriate network response. |
|
The request timed-out. |
|
The operation ran out of memory. |
|
A reliable write operation is already presently underway. |
|
The attribute handle given was not valid on this server. |
|
The attribute cannot be read. |
|
The attribute cannot be written. |
|
The attribute PDU was invalid. |
|
The attribute requires authentication before it can be read or written. |
|
Attribute server does not support the request received from the client. |
|
Offset specified was past the end of the attribute. |
|
The attribute requires authorization before it can be read or written. |
|
Too many prepare writes have been queued. |
|
No attribute found within the given attribute handle range. |
|
The attribute cannot be read or written using the Read Blob Request. |
|
The Encryption Key Size used for encrypting this link is insufficient. |
|
The attribute value length is invalid for the operation. |
|
The attribute request that was requested has encountered an error that was unlikely, and therefore could not be completed as requested. |
|
The attribute requires encryption before it can be read or written. |
|
The attribute type is not a supported grouping attribute as defined by a higher layer specification. |
|
Insufficient Resources to complete the request. |
|
An error that lies in the reserved range has been received. |
Remarks
Calling BluetoothGATTSetCharacteristicValue after BluetoothGATTBeginReliableWrite, notifies the remote Bluetooth device to store this request into a prepare queue on the device.
If signing is required, then the operation must not require a response, and must not occur over a secure channel.
The parent characteristic is returned from a previous call to BluetoothGATTGetCharacteristics, and must not be altered. Behavior is undefined if the caller does this.
Example
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);
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported in Windows 8 and later versions of Windows. |
Target Platform | Universal |
Header | bluetoothleapis.h |
Library | BluetoothAPIs.lib |
DLL | BluetoothAPIs.dll |