Partager via


Ouverture d’un handle à un objet Registry-Key

Pour ouvrir un handle à un objet de clé de Registre, effectuez le processus en deux étapes suivant :

  1. Créez une structure OBJECT_ATTRIBUTES et initialisez-la en appelant InitializeObjectAttributes. Vous spécifiez le nom de la clé à manipuler en tant que paramètre ObjectName sur InitializeObjectAttributes.

    Si vous transmettez NULL en tant que paramètre RootDirectory à InitializeObjectAttributes, ObjectName doit être le chemin d’accès complet de la clé de Registre, en commençant par \Registry. Sinon, RootDirectory doit être un handle ouvert pour une clé, et ObjectName est le chemin d’accès relatif à cette clé.

  2. Ouvrez un handle à l’objet clé en appelant ZwCreateKey ou ZwOpenKey, puis transmettez-lui la structure OBJECT_ATTRIBUTES . Si la clé n’existe pas déjà, ZwCreateKey crée la clé, tandis que ZwOpenKey retourne STATUS_OBJECT_NAME_NOT_FOUND.

Vous transmettez un paramètre DesiredAccess à ZwCreateKey ou ZwOpenKey qui contient les droits d’accès que vous demandez. Vous devez spécifier les droits d’accès qui autorisent les opérations que votre pilote effectuera. Le tableau suivant répertorie les opérations que vous pouvez effectuer et les droits d’accès correspondants à demander.

Opération Droit d’accès requis

Obtenez une valeur de clé de Registre.

KEY_QUERY_VALUE ou KEY_READ

Définissez une valeur de clé de Registre.

KEY_SET_VALUE ou KEY_WRITE

Parcourez toutes les sous-clés d’une clé.

KEY_ENUMERATE_SUB_KEYS ou KEY_READ

Créez une sous-clé.

KEY_CREATE_SUB_KEY ou KEY_WRITE

Supprime une clé.

Suppression

Pour plus d’informations sur les valeurs disponibles pour le paramètre DesiredAccess , consultez ZwCreateKey.

Vous pouvez également appeler IoOpenDeviceRegistryKey et IoOpenDeviceInterfaceRegistryKey pour ouvrir des handles à ces clés de Registre qui sont spécifiques à l’appareil et à l’interface de l’appareil, respectivement. Pour plus d’informations, consultez routines de registre Plug-and-Play.

Note Pour les appels à ZwCreateKey, ZwOpenKey, IoOpenDeviceRegistryKey et IoOpenDeviceInterfaceRegistryKey, les droits d’accès génériques, GENERIC_READ et GENERIC_WRITE, sont équivalents aux droits d’accès spécifiques à la clé, KEY_READ et KEY_WRITE, respectivement, et peuvent être utilisés en remplacement de ces droits d’accès spécifiques à la clé.