Compartir a través de


Función ZwQueryKey (wdm.h)

La rutina ZwQueryKey proporciona información sobre la clase de una clave del Registro y el número y los tamaños de sus subclaves.

Sintaxis

NTSYSAPI NTSTATUS ZwQueryKey(
  [in]            HANDLE                KeyHandle,
  [in]            KEY_INFORMATION_CLASS KeyInformationClass,
  [out, optional] PVOID                 KeyInformation,
  [in]            ULONG                 Length,
  [out]           PULONG                ResultLength
);

Parámetros

[in] KeyHandle

Controle la clave del Registro para obtener información sobre. Este identificador se crea mediante una llamada correcta a ZwCreateKey o ZwOpenKey.

[in] KeyInformationClass

Especifica un valor de KEY_INFORMATION_CLASS que determina el tipo de información devuelta en el búfer KeyInformation .

[out, optional] KeyInformation

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 KeyInformation .

[out] ResultLength

Puntero a una variable que recibe el tamaño, en bytes, de la información de clave solicitada. Si ZwQueryKey devuelve STATUS_SUCCESS, la variable contiene la cantidad de datos devueltos. Si ZwQueryKey devuelve STATUS_BUFFER_OVERFLOW o STATUS_BUFFER_TOO_SMALL, puede usar el valor de la variable para determinar el tamaño de búfer necesario.

Valor devuelto

ZwQueryKey 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_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_INFORMATION_CLASS válido.

Comentarios

KeyHandle pasado a ZwQueryKey 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.

Si KeyInformationClass es KeyNameInformation o KeyHandleTagsInformation, no se aplica el requisito de KEY_QUERY_VALUE.

ZwQueryKey se puede usar para obtener información que puede usar para asignar búferes para contener datos del Registro, como el tamaño máximo de las entradas de valor o los nombres de subclave de una clave, o el número de subclaves. Por ejemplo, puede llamar a ZwQueryKey, usar la información devuelta para asignar un búfer para una subclave, llamar a ZwEnumerateKey para obtener el nombre de la subclave y pasar ese nombre a una rutina rtlXxxRegistry .

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 "NtQueryKey" en lugar de "ZwQueryKey".

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

KEY_BASIC_INFORMATION

KEY_CACHED_INFORMATION

KEY_FULL_INFORMATION

KEY_INFORMATION_CLASS

KEY_NAME_INFORMATION

KEY_NODE_INFORMATION

KEY_VIRTUALIZATION_INFORMATION

Uso de las versiones Nt y Zw de las rutinas nativas de System Services

ZwClose

ZwEnumerateKey

ZwOpenKey