Partager via


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

La méthode QueryKey récupère des informations sur une clé de Registre, notamment le nom de clé, la classe de clé et le nombre de sous-clés et leurs tailles.

Syntaxe

NTSTATUS QueryKey(
  [in]  KEY_INFORMATION_CLASS KeyInformationClass,
  [out] PVOID                 KeyInformation,
  [in]  ULONG                 Length,
  [out] PULONG                ResultLength
);

Paramètres

[in] KeyInformationClass

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_INFORMATION_CLASS suivantes :

  • KeyBasicInformation
  • KeyFullInformation
  • KeyNodeInformation

[out] KeyInformation

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_BASIC_INFORMATION, KEY_FULL_INFORMATIONou KEY_NODE_INFORMATION, en fonction de la valeur de KeyInformationClass. La structure est suivie d’une chaîne de caractères Unicode dont la taille dépend du type d’informations demandées sur la clé et de la longueur du nom ou de la chaîne de classe de la clé.

[in] Length

Taille en octets de la mémoire tampon KeyInformation, que l’appelant doit définir en fonction de la KeyInformationClass donnée. 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 d’octets réellement écrits dans la mémoire tampon KeyInformation. Si la longueur de la mémoire tampon spécifiée est trop petite pour contenir les informations, toutefois, la méthode génère à la place la taille de mémoire tampon requise et retourne STATUS_BUFFER_OVERFLOW ou STATUS_BUFFER_TOO_SMALL. Pour plus d’informations, consultez la section Remarques suivante.

Valeur de retour

QueryKey retourne STATUS_SUCCESS si l’appel a réussi à copier les informations demandées dans la mémoire tampon KeyInformation. 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 un code d’état d’erreur approprié. Le tableau suivant présente certains des codes d’erreur possibles.

Retourner le code Description
STATUS_INVALID_PARAMETER
Indique qu’un des paramètres passés à la méthode n’est pas valide.

Remarques

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

Exigences

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

Voir aussi

IRegistryKey

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

ZwQueryKey