Compartilhar via


Método IRegistryKey::EnumerateKey (portcls.h)

O EnumerateKey método retorna informações sobre as subchaves da chave aberta.

Sintaxe

NTSTATUS EnumerateKey(
  [in]  ULONG                 Index,
  [in]  KEY_INFORMATION_CLASS KeyInformationClass,
  [out] PVOID                 KeyInformation,
  [in]  ULONG                 Length,
  [out] PULONG                ResultLength
);

Parâmetros

[in] Index

Especifica o índice de subchave. Esse parâmetro identifica a subchave para a qual as informações de chave são solicitadas. Se a chave contiver n subchaves, os índices válidos variam de 0 a n-1. Se o índice exceder esse intervalo, o método retornará STATUS_NO_MORE_ENTRIES.

[in] KeyInformationClass

Especifica o tipo de informação a ser retornado no buffer. Defina esse parâmetro como um dos seguintes valores de enumeração KEY_INFORMATION_CLASS:

  • KeyBasicInformation
  • KeyFullInformation
  • KeyNodeInformation

[out] KeyInformation

Ponteiro para o buffer de informações de chave. Esse parâmetro aponta para um buffer alocado pelo chamador no qual o método grava os dados solicitados. O buffer contém uma estrutura do tipo KEY_BASIC_INFORMATION, KEY_FULL_INFORMATION ou KEY_NODE_INFORMATION, dependendo do valor de KeyInformationClass. A estrutura é seguida por uma cadeia de caracteres Unicode cujo tamanho depende do tipo de informação que está sendo solicitada sobre a chave.

[in] Length

Especifica o tamanho em bytes do buffer KeyInformation , que o chamador deve definir de acordo com o KeyInformationClass fornecido. Para que a chamada seja bem-sucedida, o buffer deve ser pelo menos tão grande quanto os dados que o método grava no buffer.

[out] ResultLength

Ponteiro de saída para o comprimento dos dados resultantes. Esse parâmetro aponta para uma variável ULONG alocada pelo chamador na qual o método grava uma contagem especificando o número de bytes realmente gravados no buffer KeyInformation . Se o comprimento do buffer especificado for muito pequeno para conter as informações, no entanto, o método gerará o tamanho do buffer necessário e retornará STATUS_BUFFER_OVERFLOW.

Retornar valor

EnumerateKey retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida na recuperação das informações solicitadas no buffer KeyInformation . Se o tamanho do buffer especificado for muito pequeno para receber todas as informações disponíveis, o método retornará STATUS_BUFFER_OVERFLOW. Caso contrário, o método retorna um código de erro apropriado. A tabela a seguir mostra alguns dos possíveis códigos de retorno status.

Código de retorno Descrição
STATUS_BUFFER_TOO_SMALL
Indica que o buffer especificado é muito pequeno para receber qualquer informação.
STATUS_NO_MORE_ENTRIES
Indica que não há mais subchaves disponíveis (o índice de subchave é maior ou igual ao número de subchaves).

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho portcls.h (inclua Portcls.h)
IRQL PASSIVE_LEVEL

Confira também

IRegistryKey

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

ZwEnumerateKey