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) |