Partilhar via


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

O método SetValueKey substitui ou cria uma entrada de valor sob a chave aberta.

Sintaxe

NTSTATUS SetValueKey(
  [in, optional] PUNICODE_STRING ValueName,
  [in]           ULONG           Type,
  [in]           PVOID           Data,
  [in]           ULONG           DataSize
);

Parâmetros

[in, optional] ValueName

Ponteiro para uma cadeia de caracteres que contém o nome da entrada de valor a ser definida. A cadeia de caracteres de nome é especificada por uma estrutura do tipo UNICODE_STRING. Se a entrada de valor não tiver nome, defina esse parâmetro como NULL. Se o chamador especificar uma cadeia de caracteres de nome, mas o nome fornecido não for exclusivo em relação à chave que contém, o método substituirá os dados por uma entrada de valor existente.

[in] Type

Especifica o tipo dos dados a serem gravados para ValueName. Defina esse parâmetro como um dos seguintes tipos definidos pelo sistema:

REG_BINARY

REG_DWORD

REG_DWORD_LITTLE_ENDIAN

REG_DWORD_BIG_ENDIAN

REG_EXPAND_SZ

REG_LINK

REG_MULTI_SZ

REG_NONE

REG_SZ

REG_RESOURCE_LIST

REG_RESOURCE_REQUIREMENTS_LIST

REG_FULL_RESOURCE_DESCRIPTOR

Esses tipos de parâmetro são explicados em ZwSetValueKey .

[in] Data

Ponteiro para um buffer que contém os dados. Esse parâmetro aponta para uma estrutura fornecida pelo usuário ou valor apropriado para a função.

[in] DataSize

Especifica o tamanho em bytes de Data. Esse parâmetro especifica quantos bytes de dados o método copiará do buffer para o qual o data aponta.

Valor de retorno

SetValueKey retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida na definição da chave de valor especificada. Caso contrário, o método retornará um código de erro apropriado. A tabela a seguir mostra alguns dos possíveis códigos de status de retorno.

Código de retorno Descrição
STATUS_INVALID_PARAMETER
Indica que um dos parâmetros passados para o método não é válido.
STATUS_OBJECT_NAME_NOT_FOUND
Indica que o método não pôde localizar a chave de valor nomeada.

Observações

Se a chave fornecida não tiver nenhuma entrada de valor existente com um nome que corresponda ao ValueNamefornecido, SetValueKey criará uma nova entrada de valor com o nome fornecido. Se houver um nome de entrada de valor correspondente, essa rotina substituirá a entrada de valor original para o ValueName defornecido. Assim, SetValueKey preserva um nome exclusivo para cada entrada de valor de qualquer chave específica. Embora cada nome de entrada de valor precise ser exclusivo para a chave que contém, muitas chaves diferentes no Registro podem ter entradas de valor com os mesmos nomes.

Requisitos

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

Consulte também

IRegistryKey

UNICODE_STRING

ZwSetValueKey