Share via


Método IRegistryKey::EnumerateKey (portcls.h)

El EnumerateKey método devuelve información sobre las subclaves de la clave abierta.

Sintaxis

NTSTATUS EnumerateKey(
  [in]  ULONG                 Index,
  [in]  KEY_INFORMATION_CLASS KeyInformationClass,
  [out] PVOID                 KeyInformation,
  [in]  ULONG                 Length,
  [out] PULONG                ResultLength
);

Parámetros

[in] Index

Especifica el índice de subclave. Este parámetro identifica la subclave para la que se solicita información de clave. Si la clave contiene n subclaves, los índices válidos van de 0 a n-1. Si el índice supera este intervalo, el método devuelve STATUS_NO_MORE_ENTRIES.

[in] KeyInformationClass

Especifica el tipo de información que se va a devolver en el búfer. Establezca este parámetro en uno de los siguientes valores de enumeración KEY_INFORMATION_CLASS:

  • KeyBasicInformation
  • KeyFullInformation
  • KeyNodeInformation

[out] KeyInformation

Puntero al búfer de información de clave. Este parámetro apunta a un búfer asignado por el autor de la llamada en el que el método escribe los datos solicitados. El búfer contiene una estructura de tipo KEY_BASIC_INFORMATION, KEY_FULL_INFORMATION o KEY_NODE_INFORMATION, según el valor de KeyInformationClass. La estructura va seguida de una cadena de caracteres Unicode cuyo tamaño depende del tipo de información que se solicita sobre la clave.

[in] Length

Especifica el tamaño en bytes del búfer KeyInformation , que el autor de la llamada debe establecer según la keyInformationClass especificada. Para que la llamada se realice correctamente, el búfer debe ser al menos tan grande como los datos que el método escribe en el búfer.

[out] ResultLength

Puntero de salida para la longitud de los datos resultantes. Este parámetro apunta a una variable ULONG asignada por el autor de la llamada en la que el método escribe un recuento que especifica el número de bytes realmente escritos en el búfer KeyInformation . Sin embargo, si la longitud del búfer especificada es demasiado pequeña para contener la información, el método genera el tamaño de búfer necesario y devuelve STATUS_BUFFER_OVERFLOW.

Valor devuelto

EnumerateKey devuelve STATUS_SUCCESS si la llamada se realizó correctamente para recuperar la información solicitada en el búfer KeyInformation . Si el tamaño del búfer especificado es demasiado pequeño para recibir toda la información disponible, el método devuelve STATUS_BUFFER_OVERFLOW. De lo contrario, el método devuelve un código de error adecuado. En la tabla siguiente se muestran algunos de los posibles códigos de estado de retorno.

Código devuelto Descripción
STATUS_BUFFER_TOO_SMALL
Indica que el búfer especificado es demasiado pequeño para recibir cualquier información.
STATUS_NO_MORE_ENTRIES
Indica que no hay más subclaves disponibles (el índice de subclave es mayor o igual que el número de subclaves).

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado portcls.h (incluir Portcls.h)
IRQL PASSIVE_LEVEL

Consulte también

IRegistryKey

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

ZwEnumerateKey