共用方式為


bluetoothGATTSetDescriptorValue 函式 (bluetoothleapis.h)

BluetoothGATTSetDescriptorValue 函式會將指定的描述元值寫入藍牙裝置。

語法

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 行為的旗標:

旗標 描述
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 支援。
目標平台 Universal
標頭 bluetoothleapis.h
程式庫 BluetoothApis.lib
Dll BluetoothAPIs.dll

另請參閱

BTH_LE_GATT_DESCRIPTOR

BTH_LE_GATT_DESCRIPTOR_VALUE