Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[Aplica-se a KMDF e UMDF]
O método WdfRegistryQueryMemory recupera os dados atribuídos atualmente a um valor de registro especificado, armazena os dados em um buffer alocado por estrutura e cria um objeto de memória de estrutura para representar o buffer.
Sintaxe
NTSTATUS WdfRegistryQueryMemory(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] POOL_TYPE PoolType,
[in, optional] PWDF_OBJECT_ATTRIBUTES MemoryAttributes,
[out] WDFMEMORY *Memory,
[out, optional] PULONG ValueType
);
Parâmetros
[in] Key
Um identificador para um objeto de chave do Registro que representa uma chave aberta do Registro.
[in] ValueName
Um ponteiro para uma estrutura UNICODE_STRING que contém um nome de valor.
[in] PoolType
Um valor POOL_TYPEdigitado que especifica o tipo de memória a ser alocada para o buffer de dados.
[in, optional] MemoryAttributes
Um ponteiro para uma estrutura WDF_OBJECT_ATTRIBUTES que contém atributos de objeto para o novo objeto de memória. Esse parâmetro é opcional e pode ser WDF_NO_OBJECT_ATTRIBUTES.
[out] Memory
Um ponteiro para um local que recebe um identificador para o novo objeto de memória.
[out, optional] ValueType
Um ponteiro para um local que recebe o tipo de dados. Para obter uma lista de valores de tipo de dados, consulte o Type membro do KEY_VALUE_BASIC_INFORMATION. Esse ponteiro é opcional e pode ser NULL.
Valor de retorno
WdfRegistryQueryMemory retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, o método poderá retornar um dos seguintes valores:
Para obter uma lista de outros valores retornados que o método WdfRegistryQueryMemory pode retornar, consulte Erros de Criação de Objeto da Estrutura.
Esse método também pode retornar outros valores NTSTATUS .
Uma verificação de bug ocorre se o driver fornece um identificador de objeto inválido.
Observações
Quando um driver chama WdfRegistryQueryMemory, a estrutura aloca um buffer grande o suficiente para manter os dados do valor do Registro especificado. Depois que WdfRegistryQueryMemory retorna, o driver pode chamar WdfMemoryGetBuffer para obter um ponteiro para o buffer e o tamanho do buffer.
Para obter mais informações sobre objetos de chave do Registro, consulte Usando o Registro em Framework-Based Drivers.
Exemplos
O exemplo de código a seguir recupera os dados atribuídos ao valor MyValueName e, em seguida, obtém o endereço e o tamanho dos dados.
WDFMEMORY memory;
size_t size;
PUCHAR pBuf;
NTSTATUS status;
ULONG type;
DECLARE_CONST_UNICODE_STRING(valueName1, L"MyValueName");
status = WdfRegistryQueryMemory(
Key,
&valueName1,
PagedPool,
NULL,
&memory,
&type
);
pBuf = (PUCHAR)WdfMemoryGetBuffer(
memory,
&size
);
Requisitos
| Requisito | Valor |
|---|---|
| da 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) |