Partager via


Fonction ZwDeleteValueKey (wdm.h)

La routine ZwDeleteValueKey supprime une entrée de valeur correspondant à un nom d’une clé ouverte dans le Registre. Si aucune entrée de ce type n’existe, une erreur est retournée.

Syntaxe

NTSYSAPI NTSTATUS ZwDeleteValueKey(
  [in] HANDLE          KeyHandle,
  [in] PUNICODE_STRING ValueName
);

Paramètres

[in] KeyHandle

Handle de la clé de Registre contenant l’entrée de valeur d’intérêt. Cette clé doit avoir été ouverte avec KEY_SET_VALUE défini pour l’accès souhaité. Ce handle est créé par un appel réussi à ZwCreateKey ou ZwOpenKey.

[in] ValueName

Pointeur vers une structure UNICODE_STRING qui contient le nom de l’entrée de valeur à supprimer. Ce paramètre peut être une chaîne vide si l’entrée de valeur n’a pas de nom.

Valeur retournée

ZwDeleteValueKey retourne STATUS_SUCCESS ou une status d’erreur appropriée représentant le status d’achèvement final de l’opération. Les codes de status d’erreur possibles incluent les éléments suivants :

Code de retour Description
STATUS_ACCESS_DENIED Le handle KeyHandle n’a pas l’accès KEY_SET_VALUE.
STATUS_INSUFFICIENT_RESOURCES Les ressources supplémentaires requises par cette fonction n’étaient pas disponibles.
STATUS_INVALID_HANDLE Le paramètre KeyHandle spécifié était un pointeur NULL ou non un pointeur valide vers une clé de Registre ouverte.
STATUS_OBJECT_NAME_NOT_FOUND L’entrée de clé de Registre ValueName est introuvable.

Remarques

Le KeyHandle passé à ZwDeleteValueKey doit avoir été ouvert pour que la suppression de l’accès réussisse. Les valeurs DesiredAccess de KEY_SET_VALUE, KEY_WRITE et KEY_ALL_ACCESS incluent le masque d’accès KEY_SET_VALUE requis pour supprimer l’accès. Pour obtenir une description des valeurs possibles pour DesiredAccess, consultez ZwCreateKey.

Si les fonctions de rappel sont inscrites pour cette clé de Registre, ces fonctions de rappel sont appelées.

Les pilotes de périphérique ne doivent pas tenter d’appeler directement ZwDeleteValueKey pour supprimer les entrées de valeur dans une sous-clé du \Registry.. \ResourceMap key. Seul le système peut écrire ou supprimer des entrées de valeur dans le \Registry.. \Arborescence HardwareDescription .

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

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, Fltkernel.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport),PowerIrpDDis(wdm)

Voir aussi

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

ZwCreateKey

ZwDeleteKey

ZwEnumerateValueKey

ZwOpenKey

ZwQueryValueKey

ZwSetValueKey