次の方法で共有


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 の動作を変更するためのフラグ:

フラグ 説明
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 でサポートされています。
対象プラットフォーム ユニバーサル
Header bluetoothleapis.h
Library BluetoothApis.lib
[DLL] BluetoothAPIs.dll

こちらもご覧ください

BTH_LE_GATT_DESCRIPTOR

BTH_LE_GATT_DESCRIPTOR_VALUE