Freigeben über


BluetoothGATTSetCharacteristicValue-Funktion (bluetoothleapis.h)

Die BluetoothGATTSetCharacteristicValue-Funktion schreibt den angegebenen Merkmalswert in das Bluetooth-Gerät.

Syntax

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
);

Parameter

[in] hDevice

Handle mit dem Dienst.

[in] Characteristic

Zeiger auf BTH_LE_GATT_CHARACTERISTIC Struktur, die das übergeordnete Merkmal enthält.

[in] CharacteristicValue

Zeiger auf BTH_LE_GATT_CHARACTERISTIC_VALUE Struktur, die den Merkmalswert enthält.

[in, optional] ReliableWriteContext

BTH_LE_GATT_RELIABLE_WRITE_CONTEXT Struktur, die den Kontext enthält, der den zuverlässigen Schreibvorgang beschreibt, der von einem vorherigen Aufruf von BluetoothGATTBeginReliableWrite zurückgegeben wurde.

[in] Flags

Flags zum Ändern des Verhaltens von BluetoothGATTSetCharacteristicValue:

Flag Beschreibung
BLUETOOTH_GATT_FLAG_NONE Der Client hat keine spezifischen GATT-Anforderungen (Standard).
BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED Der Client fordert die Übertragung der Daten über einen verschlüsselten Kanal an.
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED Der Client fordert die Übertragung der Daten über einen authentifizierten Kanal an.
BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE Schreiben Sie ohne Antwort.
BLUETOOTH_GATT_FLAG_SIGNED_WRITE Signierter Schreibvorgang. Profiltreiber müssen mit BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE verwenden, um signierte Schreibvorgänge ohne Antwort zu erzeugen.

Rückgabewert

Die BluetoothGATTSetCharacteristicValue-Funktion gibt die folgenden Werte zurück:

Rückgabecode BESCHREIBUNG
S_OK
Der Vorgang wurde erfolgreich abgeschlossen.
ERROR_ACCESS_DENIED
Wird zurückgegeben, wenn sowohl ein übergeordneter Dienst als auch ein Diensthandle bereitgestellt werden und die Diensthierarchie kein Rollup zum bereitgestellten übergeordneten Diensthandle durchführt.
ERROR_INVALID_PARAMETER
Ein Parameter war ungültig.
ERROR_BAD_NET_RESP
Der Zielserver hat keine geeignete Netzwerkantwort bereitgestellt.
ERROR_SEM_TIMEOUT
Das Anforderungstimeout.
ERROR_NO_SYSTEM_RESOURCES
Für den Vorgang war der Arbeitsspeicher nicht mehr vorhanden.
ERROR_INVALID_FUNCTION
Ein zuverlässiger Schreibvorgang wird bereits ausgeführt.
E_BLUETOOTH_ATT_INVALID_HANDLE
Das angegebene Attributhandle war auf diesem Server ungültig.
E_BLUETOOTH_ATT_READ_NOT_PERMITTED
Das Attribut kann nicht gelesen werden.
E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED
Das Attribut kann nicht geschrieben werden.
E_BLUETOOTH_ATT_INVALID_PDU
Das Attribut PDU war ungültig.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION
Das Attribut erfordert eine Authentifizierung, bevor es gelesen oder geschrieben werden kann.
E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED
Der Attributserver unterstützt die vom Client empfangene Anforderung nicht.
E_BLUETOOTH_ATT_INVALID_OFFSET
Der angegebene Offset lag am Ende des Attributs.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION
Das Attribut erfordert eine Autorisierung, bevor es gelesen oder geschrieben werden kann.
E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL
Zu viele Schreibvorbereitungen wurden in die Warteschlange gestellt.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND
Kein Attribut innerhalb des angegebenen Attributhandlebereichs gefunden.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG
Das Attribut kann nicht mit der Read Blob Request gelesen oder geschrieben werden.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE
Die Verschlüsselungsschlüsselgröße, die für die Verschlüsselung dieses Links verwendet wird, ist nicht ausreichend.
E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH
Die Attributwertlänge ist für den Vorgang ungültig.
E_BLUETOOTH_ATT_UNLIKELY
Bei der angeforderten Attributanforderung ist ein Fehler aufgetreten, der unwahrscheinlich war und daher nicht wie angefordert abgeschlossen werden konnte.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION
Das Attribut erfordert eine Verschlüsselung, bevor es gelesen oder geschrieben werden kann.
E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE
Der Attributtyp ist kein unterstütztes Gruppierungsattribut, wie durch eine höhere Spezifikation definiert.
E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES
Unzureichende Ressourcen, um die Anforderung abzuschließen.
E_BLUETOOTH_ATT_UNKNOWN_ERROR
Ein Fehler, der im reservierten Bereich liegt, wurde empfangen.

Hinweise

Beim Aufrufen von BluetoothGATTSetCharacteristicValue nach BluetoothGATTBeginReliableWrite benachrichtigt das Bluetooth-Remotegerät, diese Anforderung in einer Vorbereitungswarteschlange auf dem Gerät zu speichern.

Wenn die Signatur erforderlich ist, darf der Vorgang keine Antwort erfordern und darf nicht über einen sicheren Kanal erfolgen.

Das übergeordnete Merkmal wird von einem vorherigen Aufruf von BluetoothGATTGetCharacteristics zurückgegeben und darf nicht geändert werden. Das Verhalten ist nicht definiert, wenn der Aufrufer dies tut.

Beispiel


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);

Anforderungen

   
Unterstützte Mindestversion (Client) Unterstützt in Windows 8 und höheren Versionen von Windows.
Zielplattform Universell
Header bluetoothleapis.h
Bibliothek BluetoothAPIs.lib
DLL BluetoothAPIs.dll

Weitere Informationen

BTH_LE_GATT_CHARACTERISTIC

BTH_LE_GATT_CHARACTERISTIC_VALUE