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)

Confira também

ACCESS_MASK

InitializeObjectAttributes

ZwCreateKey

ZwDeleteKey

ZwEnumerateKey

ZwEnumerateValueKey

ZwFlushKey

ZwQueryKey

ZwQueryValueKey

ZwSetValueKey