Compartilhar via


Função OREnumValue

Enumera os valores da chave do Registro aberta especificada em um hive de registro offline. A função recupera informações de um valor sob a chave especificada sempre que a função é chamada.

Sintaxe

DWORD OREnumValue(
  _In_        ORHKEY Handle,
  _In_        DWORD  dwIndex,
  _Out_       PWSTR  lpValueName,
  _Inout_     PDWORD lpcValueName,
  _Out_opt_   PDWORD lpType,
  _Out_opt_   PBYTE  lpData,
  _Inout_opt_ PDWORD lpcbData
);

Parâmetros

Manipular [in]

Um identificador para uma chave do Registro aberta em um hive de registro offline.

dwIndex [in]

O índice do valor a ser recuperado. Esse parâmetro deve ser zero para a primeira chamada para a função e, em seguida, ser incrementado para chamadas subsequentes.

Como os valores não são ordenados, qualquer novo valor terá um índice arbitrário. Isso significa que a função pode retornar valores em qualquer ordem.

lpValueName [out]

Um ponteiro para um buffer que recebe o nome do valor como uma cadeia de caracteres terminada em nulo. Esse buffer deve ser grande o suficiente para incluir o caractere nulo de terminação.

Para obter mais informações, consulte Limites de tamanho do elemento do Registro.

lpcValueName [in, out]

Um ponteiro para uma variável que especifica o tamanho do buffer apontado pelo parâmetro lpValueName , em caracteres. Quando a função retorna, a variável recebe o número de caracteres armazenados no buffer, não incluindo o caractere nulo de terminação.

lpType [out, opcional]

Um ponteiro para uma variável que recebe um código que indica o tipo de dados armazenados no valor especificado. Para obter uma lista dos códigos de tipo possíveis, consulte Tipos de valor do Registro. O parâmetro lpType poderá ser NULL se o código de tipo não for necessário.

lpData [out, opcional]

Um ponteiro para um buffer que recebe os dados da entrada de valor. Esse parâmetro poderá ser NULL se os dados não forem necessários.

Se lpData for NULL e lpcbData não for NULL, a função armazenará o tamanho dos dados, em bytes, na variável apontada por lpcbData. Isso permite que um aplicativo determine a melhor maneira de alocar um buffer para os dados.

lpcbData [in, out, optional]

Um ponteiro para uma variável que especifica o tamanho do buffer apontado pelo parâmetro lpData , em bytes. Quando a função retorna, a variável recebe o número de bytes armazenados no buffer.

Esse parâmetro só poderá ser NULL se lpData for NULL.

Se os dados tiverem o tipo REG_SZ, REG_MULTI_SZ ou REG_EXPAND_SZ, esse tamanho incluirá caracteres ou caracteres nulos de terminação. Para obter mais informações, consulte Comentários.

Se o buffer especificado por lpData não for grande o suficiente para manter os dados, a função retornará ERROR_MORE_DATA e armazenará o tamanho do buffer necessário na variável apontada por lpcbData. Nesse caso, o conteúdo de lpData é indefinido.

Valor retornado

Se a função obtiver êxito, o valor retornado será ERROR_SUCCESS.

Se a função falhar, o valor de retorno será o código de erro diferente de zero definido em Winerror.h. Você pode usar a função FormatMessage com o sinalizador FORMAT_MESSAGE_FROM_SYSTEM para obter uma descrição genérica do erro.

Se o buffer lpData for muito pequeno para receber o valor, a função retornará ERROR_MORE_DATA.

Comentários

Para enumerar valores, um aplicativo deve inicialmente chamar a função OREnumValue com o parâmetro dwIndex definido como zero. Em seguida, o aplicativo deve incrementar dwIndex e chamar a função OREnumValue até que não haja mais valores (até que a função retorne ERROR_NO_MORE_ITEMS).

O aplicativo também pode definir dwIndex para o índice do último valor na primeira chamada para a função e decrementar o índice até que o valor com índice 0 seja enumerado. Para recuperar o índice do último valor, use a função ORQueryInfoKey .

Ao usar OREnumValue, um aplicativo não deve chamar nenhuma função de Registro offline que possa alterar a chave que está sendo consultada.

Se os dados tiverem o tipo REG_SZ, REG_MULTI_SZ ou REG_EXPAND_SZ, a cadeia de caracteres poderá não ter sido armazenada com os caracteres de terminação nula adequados. Portanto, mesmo que a função retorne ERROR_SUCCESS, o aplicativo deve garantir que a cadeia de caracteres seja terminada corretamente antes de usá-la; caso contrário, ele pode substituir um buffer. (Observe que REG_MULTI_SZ cadeias de caracteres devem ter dois caracteres de terminação nula.)

Para determinar o tamanho máximo do nome e dos buffers de dados, use a função ORQueryInfoKey .

Requisitos

Requisito Valor
Redistribuível
Biblioteca do Registro Offline do Windows versão 1.0 ou posterior
Cabeçalho
Offreg.h
DLL
Offreg.dll

Confira também

ORCreateKey

OREnumKey

OROpenKey

ORQueryInfoKey