Freigeben über


IRegistryKey::SetValueKey-Methode (portcls.h)

Die SetValueKey -Methode ersetzt oder erstellt einen Werteintrag unter dem geöffneten Schlüssel.

Syntax

NTSTATUS SetValueKey(
  [in, optional] PUNICODE_STRING ValueName,
  [in]           ULONG           Type,
  [in]           PVOID           Data,
  [in]           ULONG           DataSize
);

Parameter

[in, optional] ValueName

Zeiger auf eine Zeichenfolge, die den Namen des festzulegenden Werteintrags enthält. Die Namenszeichenfolge wird durch eine Struktur vom Typ UNICODE_STRING angegeben. Wenn der Werteintrag keinen Namen hat, legen Sie diesen Parameter auf NULL fest. Wenn der Aufrufer eine Namenszeichenfolge angibt, aber der angegebene Name relativ zum enthaltenden Schlüssel nicht eindeutig ist, ersetzt die Methode die Daten durch einen vorhandenen Werteintrag.

[in] Type

Gibt den Typ der Daten an, die für ValueName geschrieben werden sollen. Legen Sie diesen Parameter auf einen der folgenden systemdefinierte Typen fest:

REG_BINARY

REG_DWORD

REG_DWORD_LITTLE_ENDIAN

REG_DWORD_BIG_ENDIAN

REG_EXPAND_SZ

REG_LINK

REG_MULTI_SZ

REG_NONE

REG_SZ

REG_RESOURCE_LIST

REG_RESOURCE_REQUIREMENTS_LIST

REG_FULL_RESOURCE_DESCRIPTOR

Diese Parametertypen werden in ZwSetValueKey erläutert.

[in] Data

Zeiger auf einen Puffer, der die Daten enthält. Dieser Parameter verweist auf eine vom Benutzer bereitgestellte Struktur oder einen Wert, der der Funktion entspricht.

[in] DataSize

Gibt die Größe von Daten in Bytes an. Dieser Parameter gibt an, wie viele Bytes daten die Methode aus dem Puffer kopiert, auf den Data verweist.

Rückgabewert

SetValueKey gibt STATUS_SUCCESS zurück, wenn der Aufruf beim Festlegen des angegebenen Wertschlüssels erfolgreich war. Andernfalls gibt die Methode einen entsprechenden Fehlercode zurück. In der folgenden Tabelle sind einige der möglichen Rückgabecodes status aufgeführt.

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Gibt an, dass einer der an die -Methode übergebenen Parameter ungültig ist.
STATUS_OBJECT_NAME_NOT_FOUND
Gibt an, dass die Methode den benannten Wertschlüssel nicht finden konnte.

Hinweise

Wenn der angegebene Schlüssel keinen vorhandenen Werteintrag mit einem Namen aufweist, der mit dem angegebenen ValueName übereinstimmt, SetValueKey erstellt einen neuen Werteintrag mit dem angegebenen Namen. Wenn ein übereinstimmender Werteintragsname vorhanden ist, überschreibt diese Routine den ursprünglichen Werteintrag für den angegebenen ValueName. SetValueKey Behält daher einen eindeutigen Namen für jeden Werteintrag eines bestimmten Schlüssels bei. Während jeder Werteintragsname für seinen enthaltenden Schlüssel eindeutig sein muss, können viele verschiedene Schlüssel in der Registrierung Werteinträge mit denselben Namen aufweisen.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header portcls.h (include Portcls.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

IRegistryKey

UNICODE_STRING

ZwSetValueKey