Fonction ZwEnumerateValueKey (wdm.h)

La routine ZwEnumerateValueKey obtient des informations sur les entrées de valeur d’une clé ouverte.

Syntaxe

NTSYSAPI NTSTATUS ZwEnumerateValueKey(
  [in]            HANDLE                      KeyHandle,
  [in]            ULONG                       Index,
  [in]            KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  [out, optional] PVOID                       KeyValueInformation,
  [in]            ULONG                       Length,
  [out]           PULONG                      ResultLength
);

Paramètres

[in] KeyHandle

Gérez la clé de Registre pour laquelle vous souhaitez énumérer les entrées de valeur. Un appel réussi à ZwCreateKey ou ZwOpenKey crée ce handle.

[in] Index

Index de base zéro de la sous-clé pour laquelle vous souhaitez obtenir des informations de valeur.

[in] KeyValueInformationClass

Spécifie une valeur KEY_VALUE_INFORMATION_CLASS qui détermine le type d’informations retournées dans la mémoire tampon KeyValueInformation .

[out, optional] KeyValueInformation

Pointeur vers une mémoire tampon allouée à l’appelant qui reçoit les informations demandées.

[in] Length

Spécifie la taille, en octets, de la mémoire tampon KeyValueInformation .

[out] ResultLength

Pointeur vers une variable qui reçoit la taille, en octets, des informations de valeur. Si cette routine retourne STATUS_SUCCESS, la variable indique la quantité de données retournées. Si cette routine retourne STATUS_BUFFER_OVERFLOW ou STATUS_BUFFER_TOO_SMALL, la variable indique la taille de mémoire tampon requise pour contenir les informations de valeur.

Valeur retournée

ZwEnumerateValueKey retourne STATUS_SUCCESS en cas de réussite ou le code d’erreur approprié en cas d’échec. Les valeurs de code d’erreur possibles sont les suivantes :

Code de retour Description
STATUS_BUFFER_OVERFLOW La mémoire tampon fournie est trop petite et seules des données partielles ont été écrites dans la mémoire tampon. *ResultLength est défini sur la taille minimale requise pour contenir les informations demandées.
STATUS_BUFFER_TOO_SMALL La mémoire tampon fournie est trop petite et aucune donnée n’a été écrite dans la mémoire tampon. *ResultLength est défini sur la taille minimale requise pour contenir les informations demandées.
STATUS_INVALID_PARAMETER Le paramètre KeyInformationClass n’est pas une valeur KEY_VALUE_INFORMATION_CLASS valide.
STATUS_NO_MORE_ENTRIES La valeur Index est hors de portée pour la clé de Registre spécifiée par KeyHandle. Par exemple, si une clé a n sous-clés, la routine retourne STATUS_NO_MORE_ENTRIES pour toute valeur supérieure à n-1.

Remarques

Le KeyHandle transmis à ZwEnumerateValueKey doit avoir été ouvert avec KEY_QUERY_VALUE accès. Pour ce faire, transmettez KEY_QUERY_VALUE, KEY_READ ou KEY_ALL_ACCESS en tant que paramètre DesiredAccess à ZwCreateKey ou ZwOpenKey.

L’index est simplement un moyen de sélectionner parmi les sous-clés avec des entrées de valeur. Il n’est pas garanti que deux appels à ZwEnumerateValueKey avec le même index retournent les mêmes résultats.

Pour plus d’informations sur l’utilisation des clés de Registre, consultez Utilisation du Registre dans un pilote.

Si l’appel à cette fonction se produit en mode utilisateur, vous devez utiliser le nom « NtEnumerateValueKey » au lieu de « ZwEnumerateValueKey ».

Pour les appels à partir de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment dans la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Utilisation des versions Nt et Zw des routines des services système natifs.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport),IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport),ZwRegistryCreate(storport), ZwRegistryCreate(wdm), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm)

Voir aussi

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

Utilisation des versions Nt et Zw des routines natives des services système natifs

ZwClose

ZwCreateKey

ZwOpenKey

ZwQueryValueKey