Метод 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 (include Portcls.h) |
IRQL | PASSIVE_LEVEL |