Метод 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. В противном случае метод возвращает соответствующий код ошибки. В следующей таблице показаны некоторые из возможных кодов состояния возврата.
Код возврата | Описание |
---|---|
|
Указывает, что указанный буфер слишком мал для получения каких-либо сведений. |
|
Указывает, что дополнительные подразделы недоступны (индекс подраздела больше или равен количеству подразделов). |
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | portcls.h (включая Portcls.h) |
IRQL | PASSIVE_LEVEL |