Fonction ZwQueryValueKey (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 jusqu’à la clé à partir de laquelle lire les entrées de valeur. 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 à 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 retournée
ZwQueryValueKey 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_OBJECT_NAME_NOT_FOUND | La valeur du Registre n’était pas disponible. |
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. |
Remarques
Le KeyHandle passé à ZwQueryValueKey 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.
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 « 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 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
Utilisation des versions Nt et Zw des routines natives des services système natifs