Função ZwOpenKey (wdm.h)
A rotina ZwOpenKey abre uma chave do Registro existente.
Sintaxe
NTSYSAPI NTSTATUS ZwOpenKey(
[out] PHANDLE KeyHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes
);
Parâmetros
[out] KeyHandle
Ponteiro para a variável HANDLE que recebe o identificador para a chave.
[in] DesiredAccess
Especifica um valor ACCESS_MASK que determina o acesso solicitado ao objeto . Para obter mais informações, consulte o parâmetro DesiredAccess de ZwCreateKey.
[in] ObjectAttributes
Ponteiro para uma estrutura OBJECT_ATTRIBUTES que especifica o nome do objeto e outros atributos. Use InitializeObjectAttributes para inicializar essa estrutura. Se o chamador não estiver em execução em um contexto de thread do sistema, ele deverá definir o atributo OBJ_KERNEL_HANDLE quando chamar InitializeObjectAttributes.
Retornar valor
ZwOpenKey retornará STATUS_SUCCESS se a chave fornecida tiver sido aberta. Caso contrário, ele poderá retornar um erro status, incluindo o seguinte:
STATUS_INVALID_HANDLE
STATUS_ACCESS_DENIED
Comentários
ZwOpenKey fornece um identificador que o chamador pode usar para manipular uma chave do Registro. A rotina fornece um subconjunto da funcionalidade de ZwCreateKey. Para obter mais informações, consulte Usando o Registro em um Driver.
Se a chave especificada não existir, ZwOpenKey retornará um erro status e não retornará um identificador de chave.
Depois que o identificador apontado por KeyHandle não estiver mais em uso, o driver deverá chamar ZwClose para fechá-lo.
ZwOpenKey ignora as informações de segurança na estrutura para a qual o parâmetro ObjectAttributes aponta.
Se o chamador não estiver em execução em um contexto de thread do sistema, ele deverá garantir que todos os identificadores que ele cria sejam identificadores privados. Caso contrário, o identificador pode ser acessado pelo processo em cujo contexto o driver está em execução. Para obter mais informações, consulte Identificadores de objeto.
Para obter mais informações sobre como trabalhar com chaves do Registro, consulte Usando o Registro em um Driver.
Se a chamada para essa função ocorrer no modo de usuário, você deverá usar o nome "NtOpenKey" em vez de "ZwOpenKey".
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regras de conformidade da DDI | HwStorPortProhibitedDIs(storport), IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm) |