Função ZwQueryValueKey (wdm.h)

A rotina ZwQueryValueKey retorna uma entrada de valor para uma chave do Registro.

Sintaxe

NTSYSAPI NTSTATUS ZwQueryValueKey(
  [in]            HANDLE                      KeyHandle,
  [in]            PUNICODE_STRING             ValueName,
  [in]            KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  [out, optional] PVOID                       KeyValueInformation,
  [in]            ULONG                       Length,
  [out]           PULONG                      ResultLength
);

Parâmetros

[in] KeyHandle

Manipule até a chave da qual as entradas de valor de leitura. Esse identificador é criado por uma chamada bem-sucedida para ZwCreateKey ou ZwOpenKey.

[in] ValueName

Ponteiro para o nome da entrada de valor para a qual obter dados.

[in] KeyValueInformationClass

Um valor KEY_VALUE_INFORMATION_CLASS que determina o tipo de informações retornadas no buffer KeyValueInformation .

[out, optional] KeyValueInformation

Ponteiro para um buffer alocado por chamador que recebe as informações solicitadas.

[in] Length

Especifica o tamanho, em bytes, do buffer KeyValueInformation .

[out] ResultLength

Ponteiro para uma variável que recebe o tamanho, em bytes, das informações de chave. Se a rotina ZwQueryValueKey retornar STATUS_SUCCESS, os chamadores poderão usar o valor dessa variável para determinar a quantidade de dados retornados. Se a rotina retornar STATUS_BUFFER_OVERFLOW ou STATUS_BUFFER_TOO_SMALL, os chamadores poderão usar o valor dessa variável para determinar o tamanho do buffer necessário para manter as informações de chave.

Valor retornado

ZwQueryValueKey retorna STATUS_SUCCESS com êxito ou o código de erro apropriado sobre falha. Os possíveis valores de código de erro incluem:

Código de retorno Descrição
STATUS_OBJECT_NAME_NOT_FOUND
O valor do registro não estava disponível.
STATUS_BUFFER_OVERFLOW
O buffer fornecido é muito pequeno e somente dados parciais foram gravados no buffer. *ResultLength é definido como o tamanho mínimo necessário para armazenar as informações solicitadas.
STATUS_BUFFER_TOO_SMALL
O buffer fornecido é muito pequeno e nenhum dado foi gravado no buffer. *ResultLength é definido como o tamanho mínimo necessário para armazenar as informações solicitadas.
STATUS_INVALID_PARAMETER
O parâmetro KeyInformationClass não é um valor de KEY_VALUE_INFORMATION_CLASS válido.
Aviso Se você especificar KeyValueBasicInformation para KeyValueInformationClass, Windows 98 e Windows Me retornarão STATUS_SUCCESS mesmo que a chave do Registro ou o nome do valor não exista.
 

Comentários

O KeyHandle passado para ZwQueryValueKey deve ter sido aberto com acesso KEY_QUERY_VALUE. Isso é feito passando KEY_QUERY_VALUE, KEY_READ ou KEY_ALL_ACCESS como o parâmetro DesiredAccess para ZwCreateKey ou ZwOpenKey.

Para obter mais informações sobre como trabalhar com chaves do Registro, consulte Como usar o Registro em um Driver.

Nota Se a chamada para essa função ocorrer no modo de usuário, você deverá usar o nome "NtQueryValueKey" em vez de "ZwQueryValueKey".
 
Para chamadas de drivers no modo kernel, as versões NtXxx e ZwXxx de uma rotina do Windows Native System Services podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Using Nt e Zw Versions of the Native System Services Routines.

Requisitos

   
Cliente mínimo com suporte Disponível a partir do Windows 2000.
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 de DDI HwStorPortProhibitedDIs(storport), IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport), ZwRegistryCreate(storport), ZwRegistryCreate(wdm), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm)

Confira também

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_INFORMATION_CLASS

KEY_VALUE_PARTIAL_INFORMATION

Usando versões Nt e Zw das rotinas de serviços do sistema nativo

ZwCreateKey

ZwEnumerateValueKey

ZwOpenKey