Функция BluetoothGATTSetDescriptorValue (bluetoothleapis.h)
Функция BluetoothGATTSetDescriptorValue записывает указанное значение дескриптора на устройство Bluetooth.
Синтаксис
HRESULT BluetoothGATTSetDescriptorValue(
[in] HANDLE hDevice,
[in] PBTH_LE_GATT_DESCRIPTOR Descriptor,
[in] PBTH_LE_GATT_DESCRIPTOR_VALUE DescriptorValue,
[in] ULONG Flags
);
Параметры
[in] hDevice
Дескриптор для службы.
[in] Descriptor
Указатель на родительский дескриптор.
[in] DescriptorValue
Указатель на значение дескриптора.
[in] Flags
Флаги для изменения поведения BluetoothGATTSetDescriptorValue:
Flag | Описание |
---|---|
BLUETOOTH_GATT_FLAG_NONE | Клиент не предъявляет особых требований к GATT (по умолчанию). |
BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED | Клиент запрашивает передачу данных по зашифрованным каналам. |
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED | Клиент запрашивает передачу данных по каналу, прошедшему проверку подлинности. |
Возвращаемое значение
Функция BluetoothGATTSetDescriptorValue возвращает следующие значения:
Код возврата | Описание |
---|---|
|
Операция выполнена успешно. |
|
Возвращается, если предоставляются родительская служба и дескриптор службы, а иерархия служб не выполняет сверты до предоставленного дескриптора родительской службы. |
|
Был указан недопустимый параметр. |
|
Целевой сервер не предоставил соответствующий сетевой ответ. |
|
Время ожидания запроса истекло. |
|
В операции не хватает памяти. |
|
Указанный дескриптор атрибута был недопустим на этом сервере. |
|
Атрибут не может быть прочитан. |
|
Атрибут не может быть записан. |
|
Недопустимый атрибут PDU. |
|
Атрибут требует проверки подлинности, прежде чем его можно будет прочитать или записать. |
|
Сервер атрибутов не поддерживает запрос, полученный от клиента. |
|
Указанное смещение прошло после конца атрибута. |
|
Атрибут требует авторизации, прежде чем его можно будет прочитать или записать. |
|
Слишком много операций подготовки записей поставлено в очередь. |
|
Атрибут не найден в заданном диапазоне дескрипторов атрибута. |
|
Атрибут не может быть прочитан или записан с помощью запроса на чтение BLOB-объекта. |
|
Размер ключа шифрования, используемый для шифрования этой ссылки, недостаточен. |
|
Длина значения атрибута недопустима для операции. |
|
Запрошенный запрос атрибута столкнулся с ошибкой, которая была маловероятна и поэтому не может быть выполнена в соответствии с запросом. |
|
Атрибут требует шифрования, прежде чем его можно будет прочитать или записать. |
|
Тип атрибута не является поддерживаемым атрибутом группирования, как определено спецификацией более высокого уровня. |
|
Недостаточно ресурсов для выполнения запроса. |
|
Получена ошибка, связанная с зарезервированным диапазоном. |
Комментарии
Родительский дескриптор должен быть возвращен из предыдущего вызова BluetoothGATTGetDescriptors и не должен быть изменен. Поведение не определено, если вызывающий объект делает это.
Пример
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);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в Windows 8 и более поздних версиях Windows. |
Целевая платформа | Универсальное |
Верхняя часть | bluetoothleapis.h |
Библиотека | BluetoothApis.lib |
DLL | BluetoothAPIs.dll |