Función ZwEnumerateValueKey (wdm.h)

La rutina ZwEnumerateValueKey obtiene información sobre las entradas de valor de una clave abierta.

Sintaxis

NTSYSAPI NTSTATUS ZwEnumerateValueKey(
  [in]            HANDLE                      KeyHandle,
  [in]            ULONG                       Index,
  [in]            KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  [out, optional] PVOID                       KeyValueInformation,
  [in]            ULONG                       Length,
  [out]           PULONG                      ResultLength
);

Parámetros

[in] KeyHandle

Controle la clave del Registro para la que desea enumerar las entradas de valor. Una llamada correcta a ZwCreateKey o ZwOpenKey crea este identificador.

[in] Index

Índice de base cero de la subclave para la que desea obtener información de valor.

[in] KeyValueInformationClass

Especifica un valor de 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 valor. Si esta rutina devuelve STATUS_SUCCESS, la variable indica la cantidad de datos devueltos. Si esta rutina devuelve STATUS_BUFFER_OVERFLOW o STATUS_BUFFER_TOO_SMALL, la variable indica el tamaño del búfer necesario para contener la información del valor.

Valor devuelto

ZwEnumerateValueKey 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_VALUE_INFORMATION_CLASS válido.
STATUS_NO_MORE_ENTRIES El valor de Índice está fuera del intervalo de la clave del Registro especificada por KeyHandle. Por ejemplo, si una clave tiene n subclaves, para cualquier valor mayor que n-1, la rutina devuelve STATUS_NO_MORE_ENTRIES.

Comentarios

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

El índice es simplemente una manera de seleccionar entre subclaves con entradas de valor. No se garantiza que dos llamadas a ZwEnumerateValueKey con el mismo índice devuelvan los mismos resultados.

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 "NtEnumerateValueKey" en lugar de "ZwEnumerateValueKey".

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_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

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

ZwClose

ZwCreateKey

ZwOpenKey

ZwQueryValueKey