Função WdfRegistryQueryValue (wdfregistry.h)
[Aplica-se a KMDF e UMDF]
O método WdfRegistryQueryValue recupera os dados atribuídos atualmente a um valor de registro especificado.
Sintaxe
NTSTATUS WdfRegistryQueryValue(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] ULONG ValueLength,
[out, optional] PVOID Value,
[out, optional] PULONG ValueLengthQueried,
[out, optional] PULONG ValueType
);
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] ValueLength
O comprimento, em bytes, do buffer para o qual Value aponta.
[out, optional] Value
Um ponteiro para um buffer alocado pelo driver que recebe os dados do valor do Registro. Se esse ponteiro for NULL, WdfRegistryQueryValue recuperará o comprimento dos dados, mas não os dados.
[out, optional] ValueLengthQueried
Um ponteiro para um local que recebe o tamanho dos dados do valor do Registro. Esse ponteiro é opcional e pode ser NULL.
[out, optional] ValueType
Um ponteiro para um local que recebe o tipo de dados do valor do Registro. Para obter uma lista de valores de tipo de dados, consulte o membro Tipo de KEY_VALUE_BASIC_INFORMATION. Esse ponteiro é opcional e pode ser NULL.
Retornar valor
WdfRegistryQueryValue 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 |
---|---|
|
WdfRegistryQueryValue 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_QUERY_VALUE, KEY_READ ou KEY_ALL_ACCESS. |
|
O buffer para o qual o parâmetro Value aponta é muito pequeno e apenas os dados parciais foram gravados no buffer. |
|
O buffer Valor é muito pequeno e nenhum dado foi gravado no buffer. |
|
O valor do Registro não estava disponível. |
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
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 abre a chave de hardware de um dispositivo e recupera os dados atribuídos ao valor NumberOfToasters , que é armazenado sob a chave de hardware do dispositivo.
WCHAR comPort[FM_COM_PORT_STRING_LENGTH];
ULONG length;
NTSTATUS status;
ULONG length, valueType, value;
DECLARE_CONST_UNICODE_STRING(valueName, L"NumberOfToasters");
WDFKEY hKey;
status = WdfDeviceOpenRegistryKey(
Device,
PLUGPLAY_REGKEY_DEVICE,
KEY_QUERY_VALUE,
NULL,
&hKey
);
if (!NT_SUCCESS (status)) {
goto Error;
}
status = WdfRegistryQueryValue(
hKey,
&valueName,
sizeof(ULONG),
&value,
&length,
&valueType
);
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) |