Метод IRegistryKey::QueryKey (portcls.h)
Метод QueryKey
извлекает сведения о разделе реестра, включая имя ключа, класс ключа, количество подразделов и их размеры.
Синтаксис
NTSTATUS QueryKey(
[in] KEY_INFORMATION_CLASS KeyInformationClass,
[out] PVOID KeyInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
Параметры
[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 или STATUS_BUFFER_TOO_SMALL. Дополнительные сведения см. в разделе "Примечания".
Возвращаемое значение
QueryKey
возвращает STATUS_SUCCESS, если вызов успешно скопировать запрошенную информацию в буфер KeyInformation . Если указанный размер буфера слишком мал для получения всей запрошенной информации, метод возвращает STATUS_BUFFER_OVERFLOW. Если указанный размер буфера слишком мал для получения запрошенной информации, метод возвращает STATUS_BUFFER_TOO_SMALL. В противном случае метод возвращает соответствующий код состояния ошибки. В следующей таблице показаны некоторые возможные коды ошибок.
Код возврата | Описание |
---|---|
|
Указывает, что один из параметров, переданных методу, недопустим. |
Комментарии
Если буфер KeyInformation слишком мал для хранения запрошенной информации, метод записывает требуемый размер в файл *ResultLength и возвращает код состояния STATUS_BUFFER_OVERFLOW или STATUS_BUFFER_TOO_SMALL. Метод возвращает STATUS_BUFFER_OVERFLOW, если ему удалось записать в буфер только часть запрошенной информации. Метод возвращает STATUS_BUFFER_TOO_SMALL, если ему не удалось записать какие-либо сведения в буфер. Значение, записанное в *ResultLength , указывает минимальный размер буфера, необходимый для хранения всех запрошенных сведений.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | portcls.h (включая Portcls.h) |
IRQL | PASSIVE_LEVEL |