Метод IRegistryKey::EnumerateKey (portcls.h)

Метод EnumerateKey возвращает сведения о подразделах открытого ключа.

Синтаксис

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

Параметры

[in] Index

Задает индекс подраздела. Этот параметр определяет подраздел, для которого запрашиваются сведения о ключе. Если ключ содержит n подразделов, допустимые индексы варьируются от 0 до n–1. Если индекс превышает этот диапазон, метод возвращает STATUS_NO_MORE_ENTRIES.

[in] KeyInformationClass

Указывает тип сведений, возвращаемых в буфере. Задайте для этого параметра одно из следующих значений перечисления KEY_INFORMATION_CLASS:

  • KeyBasicInformation
  • KeyFullInformation
  • KeyNodeInformation

[out] KeyInformation

Указатель на буфер сведений о ключах. Этот параметр указывает на буфер, выделенный вызывающим объектом, в который метод записывает запрошенные данные. Буфер содержит структуру типа KEY_BASIC_INFORMATION, KEY_FULL_INFORMATION или KEY_NODE_INFORMATION в зависимости от значения KeyInformationClass. За структурой следует строка символов Юникода, размер которых зависит от типа запрашиваемых сведений о ключе.

[in] Length

Указывает размер буфера KeyInformation в байтах, который вызывающий объект должен задать в соответствии с заданным классом KeyInformationClass. Для успешного вызова буфер должен быть по крайней мере таким же размером, как и данные, записываемые методом в буфер.

[out] ResultLength

Выходной указатель на длину результирующие данные. Этот параметр указывает на выделенную вызывающим объектом переменную ULONG, в которую метод записывает количество байтов, фактически записанных в буфер KeyInformation . Однако если указанная длина буфера слишком мала для хранения сведений, метод выводит требуемый размер буфера и возвращает STATUS_BUFFER_OVERFLOW.

Возвращаемое значение

EnumerateKey возвращает STATUS_SUCCESS, если вызов был успешным при получении запрошенных сведений в буфере KeyInformation . Если указанный размер буфера слишком мал для получения всех доступных сведений, метод возвращает STATUS_BUFFER_OVERFLOW. В противном случае метод возвращает соответствующий код ошибки. В следующей таблице показаны некоторые из возможных кодов состояния возврата.

Код возврата Описание
STATUS_BUFFER_TOO_SMALL
Указывает, что указанный буфер слишком мал для получения каких-либо сведений.
STATUS_NO_MORE_ENTRIES
Указывает, что дополнительные подразделы недоступны (индекс подраздела больше или равен количеству подразделов).

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть portcls.h (включая Portcls.h)
IRQL PASSIVE_LEVEL

См. также раздел

IRegistryKey

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

ZwEnumerateKey