BluetoothGATTSetCharacteristicValue 함수(bluetoothleapis.h)
BluetoothGATTSetCharacteristicValue 함수는 지정된 특성 값을 Bluetooth 디바이스에 씁니다.
구문
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
);
매개 변수
[in] hDevice
서비스에 대한 핸들입니다.
[in] Characteristic
부모 특성을 포함하는 BTH_LE_GATT_CHARACTERISTIC 구조체에 대한 포인터입니다.
[in] CharacteristicValue
특성 값을 포함하는 BTH_LE_GATT_CHARACTERISTIC_VALUE 구조체에 대한 포인터입니다.
[in, optional] ReliableWriteContext
BTH_LE_GATT_RELIABLE_WRITE_CONTEXT BluetoothGATTBeginReliableWrite에 대한 이전 호출에서 반환된 신뢰할 수 있는 쓰기 작업을 설명하는 컨텍스트를 포함하는 구조입니다.
[in] Flags
BluetoothGATTSetCharacteristicValue의 동작을 수정하는 플래그:
플래그 | 설명 |
---|---|
BLUETOOTH_GATT_FLAG_NONE | 클라이언트에 특정 GATT 요구 사항(기본값)이 없습니다. |
BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED | 클라이언트는 암호화된 채널을 통해 데이터를 전송하도록 요청합니다. |
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED | 클라이언트는 인증된 채널을 통해 데이터를 전송하도록 요청합니다. |
BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE | 응답 없이 씁니다. |
BLUETOOTH_GATT_FLAG_SIGNED_WRITE | 서명된 쓰기. 프로필 드라이버는 응답 없이 서명된 쓰기를 생성하려면 BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE 사용해야 합니다. |
반환 값
BluetoothGATTSetCharacteristicValue 함수는 다음 값을 반환합니다.
반환 코드 | 설명 |
---|---|
|
작업이 성공적으로 완료되었습니다. |
|
부모 서비스와 서비스 핸들이 모두 제공되고 서비스 계층이 제공된 부모 서비스 핸들로 롤업되지 않는 경우 반환됩니다. |
|
매개 변수가 잘못되었습니다. |
|
대상 서버가 적절한 네트워크 응답을 제공하지 않았습니다. |
|
요청 시간이 초과되었습니다. |
|
작업에 메모리가 부족합니다. |
|
신뢰할 수 있는 쓰기 작업이 이미 진행 중입니다. |
|
지정된 특성 핸들이 이 서버에서 잘못되었습니다. |
|
특성을 읽을 수 없습니다. |
|
특성을 쓸 수 없습니다. |
|
특성 PDU가 잘못되었습니다. |
|
특성을 읽거나 쓰려면 인증이 필요합니다. |
|
특성 서버는 클라이언트에서 받은 요청을 지원하지 않습니다. |
|
지정된 오프셋이 특성의 끝을 지났습니다. |
|
특성을 읽거나 쓰려면 권한 부여가 필요합니다. |
|
너무 많은 준비 쓰기가 큐에 대기되었습니다. |
|
지정된 특성 핸들 범위 내에서 특성을 찾을 수 없습니다. |
|
읽기 Blob 요청을 사용하여 특성을 읽거나 쓸 수 없습니다. |
|
이 링크를 암호화하는 데 사용되는 암호화 키 크기가 부족합니다. |
|
작업에 특성 값 길이가 잘못되었습니다. |
|
요청된 특성 요청에는 가능성이 낮아서 요청된 대로 완료할 수 없는 오류가 발생했습니다. |
|
특성을 읽거나 쓰려면 암호화가 필요합니다. |
|
특성 유형은 더 높은 계층 사양에 정의된 대로 지원되는 그룹화 특성이 아닙니다. |
|
요청을 완료할 리소스가 부족합니다. |
|
예약된 범위에 있는 오류가 수신되었습니다. |
설명
BluetoothGATTBeginReliableWrite 후에 BluetoothGATTSetCharacteristicValue를 호출하면 원격 Bluetooth 디바이스에 이 요청을 디바이스의 준비 큐에 저장하도록 알릴 수 있습니다.
서명이 필요한 경우 작업에 응답이 필요하지 않아야 하며 보안 채널을 통해 발생해서는 안 됩니다.
부모 특성은 BluetoothGATTGetCharacteristics에 대한 이전 호출에서 반환되며 변경해서는 안 됩니다. 호출자가 이 작업을 수행하는 경우 동작이 정의되지 않습니다.
예제
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);
요구 사항
지원되는 최소 클라이언트 | Windows 8 이상 버전의 Windows에서 지원됩니다. |
대상 플랫폼 | 유니버설 |
헤더 | bluetoothleapis.h |
라이브러리 | BluetoothAPIs.lib |
DLL | BluetoothAPIs.dll |