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 UNICODE_STRING que contiene un nombre de valor.
[in] ValueLength
Longitud, en bytes, del búfer al que valor apunta.
[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 se puede 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, vea el miembro type de de KEY_VALUE_BASIC_INFORMATION. Este puntero es opcional y se puede 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 abrió la clave del Registro con acceso KEY_QUERY_VALUE, KEY_READ o KEY_ALL_ACCESS. |
|
El búfer al que apunta el Valor es demasiado pequeño y solo se han escrito datos parciales en el búfer. |
|
El valor búfer 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 puede devolver otros valores de NTSTATUS.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Observaciones
Para obtener más información sobre los objetos de clave del Registro, vea Using the Registry in Framework-Based Drivers.
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 | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado de | wdfregistry.h (incluya Wdf.h) |
biblioteca de | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
irQL | PASSIVE_LEVEL |
reglas de cumplimiento de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |