Поделиться через


Функция 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 возвращает следующие значения:

Код возврата Описание
S_OK
Операция выполнена успешно.
ERROR_ACCESS_DENIED
Возвращается, если предоставляются родительская служба и дескриптор службы, а иерархия служб не выполняет сверты до предоставленного дескриптора родительской службы.
ERROR_INVALID_PARAMETER
Был указан недопустимый параметр.
ERROR_BAD_NET_RESP
Целевой сервер не предоставил соответствующий сетевой ответ.
ERROR_SEM_TIMEOUT
Время ожидания запроса истекло.
ERROR_NO_SYSTEM_RESOURCES
В операции не хватает памяти.
E_BLUETOOTH_ATT_INVALID_HANDLE
Указанный дескриптор атрибута был недопустим на этом сервере.
E_BLUETOOTH_ATT_READ_NOT_PERMITTED
Атрибут не может быть прочитан.
E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED
Атрибут не может быть записан.
E_BLUETOOTH_ATT_INVALID_PDU
Недопустимый атрибут PDU.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION
Атрибут требует проверки подлинности, прежде чем его можно будет прочитать или записать.
E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED
Сервер атрибутов не поддерживает запрос, полученный от клиента.
E_BLUETOOTH_ATT_INVALID_OFFSET
Указанное смещение прошло после конца атрибута.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION
Атрибут требует авторизации, прежде чем его можно будет прочитать или записать.
E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL
Слишком много операций подготовки записей поставлено в очередь.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND
Атрибут не найден в заданном диапазоне дескрипторов атрибута.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG
Атрибут не может быть прочитан или записан с помощью запроса на чтение BLOB-объекта.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE
Размер ключа шифрования, используемый для шифрования этой ссылки, недостаточен.
E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH
Длина значения атрибута недопустима для операции.
E_BLUETOOTH_ATT_UNLIKELY
Запрошенный запрос атрибута столкнулся с ошибкой, которая была маловероятна и поэтому не может быть выполнена в соответствии с запросом.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION
Атрибут требует шифрования, прежде чем его можно будет прочитать или записать.
E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE
Тип атрибута не является поддерживаемым атрибутом группирования, как определено спецификацией более высокого уровня.
E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES
Недостаточно ресурсов для выполнения запроса.
E_BLUETOOTH_ATT_UNKNOWN_ERROR
Получена ошибка, связанная с зарезервированным диапазоном.

Комментарии

Родительский дескриптор должен быть возвращен из предыдущего вызова 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

См. также раздел

BTH_LE_GATT_DESCRIPTOR

BTH_LE_GATT_DESCRIPTOR_VALUE