Função RegQueryMultipleValuesA (winreg.h)

Recupera o tipo e os dados de uma lista de nomes de valor associados a uma chave do Registro aberta.

Sintaxe

LSTATUS RegQueryMultipleValuesA(
  [in]                HKEY     hKey,
  [out]               PVALENTA val_list,
  [in]                DWORD    num_vals,
  [out, optional]     LPSTR    lpValueBuf,
  [in, out, optional] LPDWORD  ldwTotsize
);

Parâmetros

[in] hKey

Um identificador para uma chave aberta do Registro. A chave deve ter sido aberta com o KEY_QUERY_VALUE direito de acesso. Para obter mais informações, consulte

Direitos de Acesso e Segurança de Chave do Registro.

Esse identificador é retornado pela função RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx ou RegOpenKeyTransacted . Também pode ser uma das seguintes chaves predefinidas:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_USERS

[out] val_list

Um ponteiro para uma matriz de

Estruturas VALENT que descrevem uma ou mais entradas de valor. Na entrada, o membro ve_valuename de cada estrutura deve conter um ponteiro para o nome de um valor a ser recuperado. A função falhará se qualquer um dos valores especificados não existir na chave especificada.

Se a função for bem-sucedida, cada elemento da matriz conterá as informações do valor especificado.

[in] num_vals

O número de elementos na matriz val_list .

[out, optional] lpValueBuf

Um ponteiro para um buffer. Se a função for bem-sucedida, o buffer receberá os dados de cada valor.

Se lpValueBuf for NULL, o valor apontado pelo parâmetro ldwTotsize deverá ser zero, nesse caso, a função retornará ERROR_MORE_DATA e ldwTotsize receberá o tamanho necessário do buffer, em bytes.

[in, out, optional] ldwTotsize

Um ponteiro para uma variável que especifica o tamanho do buffer apontado pelo parâmetro lpValueBuf , em bytes. Se a função for bem-sucedida, ldwTotsize receberá o número de bytes copiados para o buffer. Se a função falhar porque o buffer é muito pequeno, ldwTotsize receberá o tamanho necessário, em bytes.

Valor retornado

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

Se a função falhar, o valor retornado será um dos seguintes códigos de erro.

Código de retorno Descrição
ERROR_CANTREAD

RegQueryMultipleValues não pode instanciar ou acessar o provedor da chave dinâmica.

ERROR_MORE_DATA
O buffer apontado por lpValueBuf era muito pequeno. Nesse caso, ldwTotsize recebe o tamanho do buffer necessário.
ERROR_TRANSFER_TOO_LONG
O tamanho total dos dados solicitados (tamanho da matriz val_list + ldwTotSize) é maior que o limite do sistema de um megabyte.

Comentários

A função RegQueryMultipleValues permite que um aplicativo consulte um ou mais valores de uma chave estática ou dinâmica. Se a chave de destino for uma chave estática, o sistema fornecerá todos os valores de forma atômica. Para evitar serialização excessiva, os dados agregados retornados pela função não podem exceder um megabyte.

Se a chave de destino for uma chave dinâmica, seu provedor deverá fornecer todos os valores de forma atômica. Isso significa que o provedor deve preencher o buffer de resultados de forma síncrona, fornecendo uma exibição consistente de todos os valores no buffer, evitando serialização excessiva. O provedor pode fornecer no máximo um megabyte de dados de saída total durante uma chamada atômica para essa função.

RegQueryMultipleValues tem suporte remoto; ou seja, o parâmetro hKey passado para a função pode se referir a um computador remoto.

Observação

O cabeçalho winreg.h define RegQueryMultipleValues como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winreg.h (inclua Windows.h)
Biblioteca Advapi32.lib
DLL Advapi32.dll

Confira também

Funções do Registro

Visão geral do Registro

VALENTE