Função WdfRegistryQueryString (wdfregistry.h)

[Aplica-se a KMDF e UMDF]

O método WdfRegistryQueryString recupera os dados de cadeia de caracteres atualmente atribuídos a um valor de cadeia de caracteres do Registro especificado e atribui a cadeia de caracteres a um objeto de cadeia de caracteres de estrutura especificado.

Sintaxe

NTSTATUS WdfRegistryQueryString(
  [in] WDFKEY           Key,
  [in] PCUNICODE_STRING ValueName,
  [in] WDFSTRING        String
);

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 para o valor do Registro.

[in] String

Um identificador para um objeto de cadeia de caracteres de estrutura. A estrutura atribuirá os dados de cadeia de caracteres do valor do Registro a esse objeto.

Retornar valor

WdfRegistryQueryString 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
STATUS_INVALID_DEVICE_REQUEST

WdfRegistryQueryString não foi chamado em IRQL = PASSIVE_LEVEL.

STATUS_INVALID_PARAMETER
Um parâmetro inválido foi especificado.
STATUS_INSUFFICIENT_RESOURCES
Não havia memória suficiente para concluir a operação.
STATUS_ACCESS_DENIED
O driver não abriu a chave do Registro com acesso KEY_QUERY_VALUE, KEY_READ ou KEY_ALL_ACCESS.
STATUS_OBJECT_TYPE_MISMATCH
O tipo de dados do valor do Registro especificado pelo parâmetro ValueName não foi REG_SZ.
STATUS_OBJECT_NAME_NOT_FOUND
O valor do Registro não estava disponível.
STATUS_RESOURCE_DATA_NOT_FOUND
O valor do Registro existe sob a chave especificada, mas está vazio.
 

Para obter uma lista de outros valores retornados que o método WdfRegistryQueryString pode retornar, consulte Erros de criação de objeto de estrutura.

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 uma cadeia de caracteres de um objeto de cadeia de caracteres, o driver pode chamar WdfStringGetUnicodeString.

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 cadeia de caracteres, recupera dados de cadeia de caracteres de uma chave do Registro e obtém os dados de cadeia de caracteres do objeto de cadeia de caracteres.

UNICODE_STRING str;
WDFSTRING string;
NTSTATUS status;
DECLARE_CONST_UNICODE_STRING(valueName, STRING_VALUE_NAME);

status = WdfStringCreate(
                         NULL,
                         WDF_NO_OBJECT_ATTRIBUTES,
                         &string
                         );
if (NT_SUCCESS(status)) {
    status = WdfRegistryQueryString(
                                    Key, 
                                    &valueName,
                                    string
                                    );
    if (NT_SUCCESS(status)) {
        WdfStringGetUnicodeString(
                                  string,
                                  &str
                                  );
    }
}

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 (include Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

UNICODE_STRING

WdfRegistryQueryMemory

WdfRegistryQueryMultiString

WdfRegistryQueryULong

WdfRegistryQueryUnicodeString

WdfRegistryQueryValue

WdfStringCreate

WdfStringGetUnicodeString