ZwQueryValueKey, fonction (wdm.h)

La routine ZwQueryValueKey retourne une entrée de valeur pour une clé de Registre.

Syntaxe

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

Paramètres

[in] KeyHandle

Gérez la clé pour lire les entrées de valeur à partir de. Ce handle est créé par un appel réussi à ZwCreateKey ou ZwOpenKey.

[in] ValueName

Pointeur vers le nom de l’entrée de valeur pour laquelle obtenir des données.

[in] KeyValueInformationClass

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 par 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 clés. Si la routine ZwQueryValueKey retourne STATUS_SUCCESS, les appelants peuvent utiliser la valeur de cette variable pour déterminer la quantité de données retournées. Si la routine retourne STATUS_BUFFER_OVERFLOW ou STATUS_BUFFER_TOO_SMALL, les appelants peuvent utiliser la valeur de cette variable pour déterminer la taille de la mémoire tampon requise pour contenir les informations de clé.

Valeur de retour

ZwQueryValueKey retourne STATUS_SUCCESS sur la 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_OBJECT_NAME_NOT_FOUND
La valeur du Registre n’a pas été disponible.
STATUS_BUFFER_OVERFLOW
La mémoire tampon fournie est trop petite et seules les 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.
Avertissement Si vous spécifiez KeyValueBasicInformation pour KeyValueInformationClass, Windows 98 et Windows Me retournent STATUS_SUCCESS même si le nom de clé ou de valeur de Registre n’existe pas.
 

Remarques

KeyHandle passé à ZwQueryValueKey doit avoir été ouvert avec l’accès KEY_QUERY_VALUE. Cela s’effectue en passant KEY_QUERY_VALUE, KEY_READ ou KEY_ALL_ACCESS comme paramètre DesiredAccess à ZwCreateKey ou ZwOpenKey.

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

Note Si l’appel à cette fonction se produit en mode utilisateur, vous devez utiliser le nom « NtQueryValueKey » au lieu de « ZwQueryValueKey ».
 
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 de 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 Using Nt and Zw Versions of the Native System Services Routines.

Configuration requise

   
Client minimal pris en charge Disponible à partir de Windows 2000.
Plateforme cible Universal
En-tête wdm.h (include 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_INFORMATION_CLASS

KEY_VALUE_PARTIAL_INFORMATION

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

ZwCreateKey

ZwEnumerateValueKey

ZwOpenKey