Función ZwQueryValueKey (wdm.h)
La rutina ZwQueryValueKey devuelve una entrada de valor para una clave del Registro.
Sintaxis
NTSYSAPI NTSTATUS ZwQueryValueKey(
[in] HANDLE KeyHandle,
[in] PUNICODE_STRING ValueName,
[in] KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
[out, optional] PVOID KeyValueInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
Parámetros
[in] KeyHandle
Identificador de la clave desde la que se van a leer las entradas de valor. Este identificador se crea mediante una llamada correcta a ZwCreateKey o ZwOpenKey.
[in] ValueName
Puntero al nombre de la entrada de valor para la que se van a obtener datos.
[in] KeyValueInformationClass
Valor KEY_VALUE_INFORMATION_CLASS que determina el tipo de información devuelta en el búfer KeyValueInformation .
[out, optional] KeyValueInformation
Puntero a un búfer asignado por el autor de la llamada que recibe la información solicitada.
[in] Length
Especifica el tamaño, en bytes, del búfer KeyValueInformation .
[out] ResultLength
Puntero a una variable que recibe el tamaño, en bytes, de la información de clave. Si la rutina ZwQueryValueKey devuelve STATUS_SUCCESS, los autores de llamadas pueden usar el valor de esta variable para determinar la cantidad de datos devueltos. Si la rutina devuelve STATUS_BUFFER_OVERFLOW o STATUS_BUFFER_TOO_SMALL, los autores de llamadas pueden usar el valor de esta variable para determinar el tamaño del búfer necesario para contener la información de clave.
Valor devuelto
ZwQueryValueKey devuelve STATUS_SUCCESS si se ejecuta correctamente o el código de error adecuado en caso de error. Entre los posibles valores de código de error se incluyen:
Código devuelto | Descripción |
---|---|
STATUS_OBJECT_NAME_NOT_FOUND | El valor del Registro no estaba disponible. |
STATUS_BUFFER_OVERFLOW | El búfer proporcionado es demasiado pequeño y solo se han escrito datos parciales en el búfer. ResultLength se establece en el tamaño mínimo necesario para contener la información solicitada. |
STATUS_BUFFER_TOO_SMALL | El búfer proporcionado es demasiado pequeño y no se ha escrito ningún dato en el búfer. ResultLength se establece en el tamaño mínimo necesario para contener la información solicitada. |
STATUS_INVALID_PARAMETER | El parámetro KeyInformationClass no es un valor de KEY_VALUE_INFORMATION_CLASS válido. |
Comentarios
KeyHandle pasado a ZwQueryValueKey debe haberse abierto con KEY_QUERY_VALUE acceso. Esto se logra pasando KEY_QUERY_VALUE, KEY_READ o KEY_ALL_ACCESS como parámetro DesiredAccess a ZwCreateKey o ZwOpenKey.
Para obtener más información sobre cómo trabajar con claves del Registro, consulte Uso del Registro en un controlador.
Si la llamada a esta función se produce en modo de usuario, debe usar el nombre "NtQueryValueKey" en lugar de "ZwQueryValueKey". En el caso de las llamadas desde controladores en modo kernel, las versiones NtXxx y ZwXxx de una rutina de Windows Native System Services pueden comportarse de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDDIs(storport), IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport), ZwRegistryCreate(storport), ZwRegistryCreate(wdm), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm) |
Consulte también
Uso de las versiones Nt y Zw de las rutinas nativas de System Services