Función WdfRegistryQueryValue (wdfregistry.h)
[Se aplica a KMDF y UMDF]
El método WdfRegistryQueryValue recupera los datos asignados actualmente a un valor del Registro especificado.
Sintaxis
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
Identificador de un objeto de clave del Registro que representa una clave del Registro abierta.
[in] ValueName
Puntero a una estructura de UNICODE_STRING que contiene un nombre de valor.
[in] ValueLength
Longitud, en bytes, del búfer al que apunta Value .
[out, optional] Value
Puntero a un búfer asignado por el controlador que recibe los datos del valor del Registro. Si este puntero es NULL, WdfRegistryQueryValue recupera la longitud de los datos, pero no los datos.
[out, optional] ValueLengthQueried
Puntero a una ubicación que recibe la longitud de datos del valor del Registro. Este puntero es opcional y puede ser NULL.
[out, optional] ValueType
Puntero a una ubicación que recibe el tipo de datos del valor del Registro. Para obtener una lista de valores de tipo de datos, consulte el miembro Type de KEY_VALUE_BASIC_INFORMATION. Este puntero es opcional y puede ser NULL.
Valor devuelto
WdfRegistryQueryValue devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, el método podría devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
No se llamó a WdfRegistryQueryValue en IRQL = PASSIVE_LEVEL. |
|
Se especificó un parámetro no válido. |
|
El controlador no ha abierto la clave del Registro con KEY_QUERY_VALUE, KEY_READ o acceso KEY_ALL_ACCESS. |
|
El búfer al que apunta el parámetro Value es demasiado pequeño y solo se han escrito datos parciales en el búfer. |
|
El búfer valor es demasiado pequeño y no se ha escrito ningún dato en el búfer. |
|
El valor del Registro no estaba disponible. |
Este método también podría devolver otros valores NTSTATUS.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
Para obtener más información sobre los objetos de clave del Registro, vea Uso del Registro en controladores de Framework-Based.
Ejemplos
En el ejemplo de código siguiente se abre la clave de hardware de un dispositivo y se recuperan los datos asignados al valor NumberOfToasters , que se almacena en la clave de hardware del 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 | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfregistry.h (incluya Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |