Partager via


Méthode IRegistryKey ::QueryValueKey (portcls.h)

La QueryValueKey méthode récupère des informations sur les entrées de valeur d’une clé de Registre, y compris leurs noms, types, tailles de données et valeurs.

Syntaxe

NTSTATUS QueryValueKey(
  [in]  PUNICODE_STRING             ValueName,
  [in]  KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  [out] PVOID                       KeyValueInformation,
  [in]  ULONG                       Length,
  [out] PULONG                      ResultLength
);

Paramètres

[in] ValueName

Pointeur vers le nom fourni par le fabricant de l’entrée de valeur. La chaîne de nom est spécifiée par une structure de type UNICODE_STRING.

[in] KeyValueInformationClass

Spécifie le type d’informations à retourner dans la mémoire tampon. Définissez ce paramètre sur l’une des valeurs d’énumération KEY_VALUE_INFORMATION_CLASS suivantes :

  • KeyValueBasicInformation
  • KeyValueFullInformation
  • KeyValuePartialInformation

[out] KeyValueInformation

Pointeur vers une mémoire tampon allouée par l’appelant dans laquelle la méthode écrit les données demandées. La mémoire tampon contient une structure de type KEY_VALUE_BASIC_INFORMATION, KEY_VALUE_FULL_INFORMATION ou KEY_VALUE_PARTIAL_INFORMATION, selon la valeur de KeyValueInformationClass. La structure est suivie de données supplémentaires dont la taille dépend du type de données de la valeur de clé.

[in] Length

Taille en octets de la mémoire tampon KeyValueInformation , que l’appelant doit définir en fonction de l’élément KeyValueInformationClass donné. Pour recevoir toutes les données demandées, la mémoire tampon doit être au moins aussi grande que la taille des données demandées.

[out] ResultLength

Pointeur de sortie pour la longueur des données obtenues. Ce paramètre pointe vers une variable ULONG allouée par l’appelant dans laquelle la méthode écrit un nombre spécifiant le nombre d’octets réellement écrits dans la mémoire tampon KeyValueInformation . Toutefois, si la longueur de mémoire tampon spécifiée est trop petite pour contenir les informations, la méthode génère plutôt la taille de mémoire tampon requise et retourne STATUS_BUFFER_OVERFLOW ou STATUS_BUFFER_TOO_SMALL. Pour plus d'informations, consultez la section Notes qui suit.

Valeur retournée

QueryValueKey retourne STATUS_SUCCESS si l’appel a réussi à copier les informations demandées dans la mémoire tampon KeyValueInformation . Si la taille de mémoire tampon spécifiée est trop petite pour recevoir toutes les informations demandées, la méthode retourne STATUS_BUFFER_OVERFLOW. Si la taille de mémoire tampon spécifiée est trop petite pour recevoir les informations demandées, la méthode retourne STATUS_BUFFER_TOO_SMALL. Sinon, la méthode retourne une erreur appropriée status code. Le tableau suivant présente certains des codes d’erreur possibles.

Code de retour Description
STATUS_INVALID_PARAMETER
Indique que l’un des paramètres passés à la méthode n’est pas valide.
STATUS_OBJECT_NAME_NOT_FOUND
Indique que l’entrée de valeur portant le nom spécifié est introuvable.

Remarques

Si la mémoire tampon KeyValueInformation est trop petite pour contenir les informations demandées, la méthode écrit la taille requise dans *ResultLength et retourne un code status de STATUS_BUFFER_OVERFLOW ou de STATUS_BUFFER_TOO_SMALL. La méthode retourne STATUS_BUFFER_OVERFLOW si elle n’a réussi à écrire qu’une partie des informations demandées dans la mémoire tampon. La méthode retourne STATUS_BUFFER_TOO_SMALL si elle n’a pas pu écrire des informations dans la mémoire tampon. La valeur écrite dans *ResultLength indique la taille de mémoire tampon minimale requise pour contenir toutes les informations demandées.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête portcls.h (include Portcls.h)
IRQL PASSIVE_LEVEL

Voir aussi

IRegistryKey

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

UNICODE_STRING

ZwQueryValueKey