Função WdfRegistryAssignMemory (wdfregistry.h)
[Aplica-se a KMDF e UMDF]
O método WdfRegistryAssignMemory atribui dados contidos em um buffer de memória especificado a um nome de valor especificado no registro.
Sintaxe
NTSTATUS WdfRegistryAssignMemory(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] ULONG ValueType,
[in] WDFMEMORY Memory,
[in, optional] PWDFMEMORY_OFFSET MemoryOffsets
);
Parâmetros
[in] Key
Um identificador para um objeto de chave do Registro que representa uma chave do Registro aberta.
[in] ValueName
Um ponteiro para uma estrutura UNICODE_STRING que contém um nome de valor.
[in] ValueType
Um valor que identifica o tipo de dados. Para obter uma lista de valores de tipo de dados, consulte o membro Tipo de KEY_VALUE_BASIC_INFORMATION.
[in] Memory
Um identificador para um objeto de memória de estrutura. Esse objeto representa um buffer que contém dados que serão atribuídos ao nome do valor ao qual ValueName aponta.
[in, optional] MemoryOffsets
Um ponteiro para uma estrutura de WDFMEMORY_OFFSET fornecida pelo driver que identifica uma subseção do buffer especificado pela Memória . Esse parâmetro é opcional e pode ser NULL.
Retornar valor
WdfRegistryAssignMemory retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, o método poderá retornar um dos seguintes valores:
Código de retorno | Descrição |
---|---|
|
WdfRegistryAssignMemory não foi chamado em IRQL = PASSIVE_LEVEL. |
|
Um parâmetro inválido foi especificado. |
|
O driver não abriu a chave do Registro com acesso KEY_SET_VALUE. |
|
O conteúdo da estrutura WDFMEMORY_OFFSET que o parâmetro MemoryOffsets especificou era inválido. |
Esse método também pode retornar outros valores NTSTATUS.
Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Comentários
Se o nome do valor especificado pelo parâmetro ValueName já existir, WdfRegistryAssignMemory atualizará os dados do valor.
Para obter mais informações sobre objetos de chave do Registro, consulte Usando o Registro em drivers de Framework-Based.
Exemplos
O exemplo de código a seguir cria um objeto de memória de estrutura, carrega o buffer do objeto com dados falsos e atribui o conteúdo do buffer a um valor do Registro.
PUCHAR pBuffer;
WDFMEMORY memory;
NTSTATUS status;
UCHAR i;
DECLARE_UNICODE_STRING_SIZE(valueName, L"MyValueName");
status = WdfMemoryCreate(
WDF_NO_OBJECT_ATTRIBUTES,
NonPagedPool,
0,
MEMORY_LENGTH,
&memory,
(PVOID*)&pBuffer
);
if (NT_SUCCESS(status)) {
// Fill the buffer with fake data.
for (i = 1; i <= MEMORY_LENGTH; i++) {
pBuffer[i-1] = i;
}
status = WdfRegistryAssignMemory(
Key,
&valueName,
REG_BINARY,
memory,
NULL
);
}
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.0 |
Versão mínima do UMDF | 2,0 |
Cabeçalho | wdfregistry.h (inclua Wdf.h) |
Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Regras de conformidade de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |