Partager via


IRegistryKey ::SetValueKey, méthode (portcls.h)

La méthode SetValueKey remplace ou crée une entrée de valeur sous la clé ouverte.

Syntaxe

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

Paramètres

[in, optional] ValueName

Pointeur vers une chaîne contenant le nom de l’entrée de valeur à définir. La chaîne de nom est spécifiée par une structure de type UNICODE_STRING. Si l’entrée de valeur n’a aucun nom, définissez ce paramètre sur NULL. Si l’appelant spécifie une chaîne de nom, mais que le nom donné n’est pas unique par rapport à sa clé contenante, la méthode remplace les données d’une entrée de valeur existante.

[in] Type

Spécifie le type des données à écrire pour ValueName. Définissez ce paramètre sur l’un des types définis par le système suivants :

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

Ces types de paramètres sont expliqués dans ZwSetValueKey.

[in] Data

Pointeur vers une mémoire tampon contenant les données. Ce paramètre pointe vers une structure ou une valeur fournie par l’utilisateur appropriée à la fonction.

[in] DataSize

Spécifie la taille en octets de Data. Ce paramètre spécifie le nombre d’octets de données que la méthode copie à partir de la mémoire tampon vers laquelle Données pointe.

Valeur de retour

SetValueKey retourne STATUS_SUCCESS si l’appel a réussi à définir la clé de valeur spécifiée. Sinon, la méthode retourne un code d’erreur approprié. Le tableau suivant présente certains des codes d’état de retour possibles.

Retourner le code Description
STATUS_INVALID_PARAMETER
Indique qu’un des paramètres passés à la méthode n’est pas valide.
STATUS_OBJECT_NAME_NOT_FOUND
Indique que la méthode n’a pas pu trouver la clé de valeur nommée.

Remarques

Si la clé donnée n’a pas d’entrée de valeur existante avec un nom correspondant à l'ValueNamedonnée, SetValueKey crée une entrée de valeur avec le nom donné. Si un nom d’entrée de valeur correspondant existe, cette routine remplace l’entrée de valeur d’origine pour l'ValueName donnée. Par conséquent, SetValueKey conserve un nom unique pour chaque entrée de valeur d’une clé particulière. Bien que chaque nom d’entrée de valeur soit unique à sa clé contenante, de nombreuses clés différentes du Registre peuvent avoir des entrées de valeur portant les mêmes noms.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête portcls.h (include Portcls.h)
IRQL PASSIVE_LEVEL

Voir aussi

IRegistryKey

UNICODE_STRING

ZwSetValueKey