Compartir a través de


Función ZwOpenKey (wdm.h)

La rutina ZwOpenKey abre una clave del Registro existente.

Sintaxis

NTSYSAPI NTSTATUS ZwOpenKey(
  [out] PHANDLE            KeyHandle,
  [in]  ACCESS_MASK        DesiredAccess,
  [in]  POBJECT_ATTRIBUTES ObjectAttributes
);

Parámetros

[out] KeyHandle

Puntero a la variable HANDLE que recibe el identificador de la clave.

[in] DesiredAccess

Especifica un valor ACCESS_MASK que determina el acceso solicitado al objeto . Para obtener más información, vea el parámetro DesiredAccess de ZwCreateKey.

[in] ObjectAttributes

Puntero a una estructura de OBJECT_ATTRIBUTES que especifica el nombre de objeto y otros atributos. Use InitializeObjectAttributes para inicializar esta estructura. Si el autor de la llamada no se ejecuta en un contexto de subproceso del sistema, debe establecer el atributo OBJ_KERNEL_HANDLE cuando llama a InitializeObjectAttributes.

Valor devuelto

ZwOpenKey devuelve STATUS_SUCCESS si se abrió la clave especificada. De lo contrario, puede devolver un estado de error, incluido lo siguiente:

  • STATUS_INVALID_HANDLE

  • STATUS_ACCESS_DENIED

Comentarios

ZwOpenKey proporciona un identificador que el autor de la llamada puede usar para manipular una clave del Registro. La rutina proporciona un subconjunto de la funcionalidad de ZwCreateKey. Para obtener más información, vea Uso del Registro en un controlador.

Si la clave especificada no existe, ZwOpenKey devuelve un estado de error y no devuelve un identificador de clave.

Una vez que el identificador al que apunta KeyHandle ya no está en uso, el controlador debe llamar a ZwClose para cerrarlo.

ZwOpenKey omite la información de seguridad de la estructura a la que apunta el parámetro ObjectAttributes .

Si el autor de la llamada no se está ejecutando en un contexto de subproceso del sistema, debe asegurarse de que los identificadores que cree sean identificadores privados. De lo contrario, el proceso puede acceder al identificador en cuyo contexto se ejecuta el controlador. Para obtener más información, vea Identificadores de objeto.

Para obtener más información sobre cómo trabajar con claves del Registro, consulte Uso del Registro en un controlador.

Si la llamada a esta función se produce en modo de usuario, debe usar el nombre "NtOpenKey" en lugar de "ZwOpenKey".

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm)

Consulte también

ACCESS_MASK

InitializeObjectAttributes

ZwCreateKey

ZwDeleteKey

ZwEnumerateKey

ZwEnumerateValueKey

ZwFlushKey

ZwQueryKey

ZwQueryValueKey

ZwSetValueKey