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 |
---|---|
|
Indica que um dos parâmetros passados para o método não é válido. |
|
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 |