Share via


Função RegQueryMultipleValuesW (winreg.h)

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

Sintaxe

LSTATUS RegQueryMultipleValuesW(
  [in]                HKEY     hKey,
  [out]               PVALENTW val_list,
  [in]                DWORD    num_vals,
  [out, optional]     LPWSTR   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 direito de acesso KEY_QUERY_VALUE. Para obter mais informações, consulte Segurança de chave do Registro e Direitos de Acesso.

Esse identificador é retornado pela função RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx ou RegOpenKeyTransacted . Ela 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 códigos de erro a seguir.

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 maneira atômica. Para evitar a 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 a serialização excessiva. O provedor pode fornecer no máximo um megabyte do total de dados de saída 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