Abrir un identificador en un objeto Registry-Key

Para abrir un identificador en un objeto de clave del Registro, lleve a cabo el siguiente proceso de dos pasos:

  1. Cree una estructura de OBJECT_ATTRIBUTES e inicialícela llamando a InitializeObjectAttributes. Especifique el nombre de la clave que se va a manipular como el parámetro ObjectName en InitializeObjectAttributes.

    Si pasa NULL como parámetro RootDirectory a InitializeObjectAttributes, ObjectName debe ser la ruta de acceso completa de la clave del Registro, empezando por \Registry. De lo contrario, RootDirectory debe ser un identificador abierto para una clave y ObjectName es la ruta de acceso relativa a esa clave.

  2. Abra un identificador para el objeto de clave mediante una llamada a ZwCreateKey o ZwOpenKey y pase la estructura OBJECT_ATTRIBUTES a él. Si la clave aún no existe, ZwCreateKey creará la clave, mientras que ZwOpenKey devolverá STATUS_OBJECT_NAME_NOT_FOUND.

Se pasa un parámetro DesiredAccess a ZwCreateKey o ZwOpenKey que contiene los derechos de acceso que solicita. Debe especificar los derechos de acceso que permitan las operaciones que realizará el controlador. En la tabla siguiente se enumeran las operaciones que puede realizar y los derechos de acceso correspondientes a solicitar.

Operación Derecho de acceso necesario

Obtiene un valor de clave del Registro.

KEY_QUERY_VALUE o KEY_READ

Establezca un valor de clave del Registro.

KEY_SET_VALUE o KEY_WRITE

Recorra en bucle todas las subclaves de una clave.

KEY_ENUMERATE_SUB_KEYS o KEY_READ

Cree una subclave.

KEY_CREATE_SUB_KEY o KEY_WRITE

Elimina una clave.

Delete

Para obtener más información sobre los valores disponibles para el parámetro DesiredAccess , vea ZwCreateKey.

También puede llamar a IoOpenDeviceRegistryKey e IoOpenDeviceInterfaceRegistryKey para abrir identificadores para las claves del Registro que son específicas del dispositivo y específicas de la interfaz de dispositivo, respectivamente. Para obtener más información, vea Plug and Play Rutinas del Registro.

Nota Para las llamadas a ZwCreateKey, ZwOpenKey, IoOpenDeviceRegistryKey y IoOpenDeviceInterfaceRegistryKey, los derechos de acceso genéricos, GENERIC_READ y GENERIC_WRITE, son equivalentes en significado a los derechos de acceso específicos de la clave, KEY_READ y KEY_WRITE, respectivamente, y se pueden usar como sustitutos de estos derechos de acceso específicos de la clave.