Função WdfRegistryQueryUnicodeString (wdfregistry.h)
[Aplica-se a KMDF e UMDF]
O método WdfRegistryQueryUnicodeString recupera os dados de cadeia de caracteres atribuídos atualmente a um valor de cadeia de caracteres do Registro especificado e copia a cadeia de caracteres para uma estrutura de UNICODE_STRING especificada.
Sintaxe
NTSTATUS WdfRegistryQueryUnicodeString(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[out, optional] PUSHORT ValueByteLength,
[in, out] PUNICODE_STRING Value
);
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 de UNICODE_STRING que contém um nome para o valor do Registro.
[out, optional] ValueByteLength
Um ponteiro para um local que recebe o número de bytes contidos na cadeia de caracteres Unicode que Value aponta, incluindo o byte de NULL terminação. Esse ponteiro é opcional e pode ser NULL
[in, out] Value
Um ponteiro para uma estrutura de UNICODE_STRING que recebe a cadeia de caracteres de dados para a chave especificada key. Se esse parâmetro for NULL e ValueByteLength não forNULL, WdfRegistryQueryUnicodeString retornará apenas o tamanho da cadeia de caracteres.
Valor de retorno
WdfRegistryQueryUnicodeString retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, o método poderá retornar um dos seguintes valores:
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
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, que é do driver de exemplo Serial, recupera a cadeia de caracteres Unicode que representa os dados de cadeia de caracteres atribuídos ao valor PortName sob a chave de hardware de um dispositivo.
NTSTATUS
SerialReadSymName(
IN WDFDEVICE Device,
__out PWCHAR RegName,
IN OUT PUSHORT LengthOfRegName // In characters
)
{
NTSTATUS status;
WDFKEY hKey;
UNICODE_STRING value;
UNICODE_STRING valueName;
USHORT requiredLength;
value.Buffer = RegName;
value.MaximumLength = *LengthOfRegName;
value.Length = 0;
status = WdfDeviceOpenRegistryKey(
Device,
PLUGPLAY_REGKEY_DEVICE,
STANDARD_RIGHTS_ALL,
WDF_NO_OBJECT_ATTRIBUTES,
&hKey
);
if (NT_SUCCESS (status)) {
RtlInitUnicodeString(
&valueName,
L"PortName"
);
status = WdfRegistryQueryUnicodeString (
hKey,
&valueName,
&requiredLength,
&value
);
WdfRegistryClose(hKey);
}
return status;
}
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) |