Поделиться через


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

Метод EnumerateValueKey возвращает сведения о записи реестра, содержащей ключ значения.

Синтаксис

NTSTATUS EnumerateValueKey(
  [in]  ULONG                       Index,
  [in]  KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  [out] PVOID                       KeyValueInformation,
  [in]  ULONG                       Length,
  [out] PULONG                      ResultLength
);

Параметры

[in] Index

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

[in] KeyValueInformationClass

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

  • KeyValueBasicInformation
  • KeyValueFullInformation
  • KeyValuePartialInformation

[out] KeyValueInformation

Указатель вывода для значения ключа. Этот параметр указывает на буфер, выделенный вызывающим объектом, в который метод записывает запрошенные данные. Буфер содержит структуру типа KEY_VALUE_BASIC_INFORMATION, KEY_VALUE_FULL_INFORMATION или KEY_VALUE_PARTIAL_INFORMATION в зависимости от значения KeyValueInformationClass. За структурой следуют дополнительные данные, размер которых зависит от типа данных значения ключа.

[in] Length

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

[out] ResultLength

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

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

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

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

Требования

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

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

IRegistryKey

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

ZwEnumerateValueKey