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


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

Метод NewSubKey создает новый подраздел реестра или открывает существующий подраздел в разделе, представленном объектом IRegistryKey .

Синтаксис

NTSTATUS NewSubKey(
  [out]           IRegistryKey    **RegistrySubKey,
  [in]            PUNKNOWN        OuterUnknown,
  [in]            ACCESS_MASK     DesiredAccess,
  [in]            PUNICODE_STRING SubKeyName,
  [in]            ULONG           CreateOptions,
  [out, optional] PULONG          Disposition
);

Параметры

[out] RegistrySubKey

Указатель вывода для нового подраздела. Этот параметр указывает на выделенную вызывающим объектом переменную указателя, в которую метод записывает указатель на новый объект IRegistryKey . Этот объект представляет открываемый или создаваемый подраздел. Укажите допустимое значение указателя, отличное от NULL , для этого параметра.

[in] OuterUnknown

Указатель на интерфейс IUnknown объекта, который должен агрегировать объект раздела реестра. Этот параметр является необязательным. Если агрегирование не требуется, укажите этот параметр как NULL.

[in] DesiredAccess

Указывает тип доступа, который требуется вызывающей объекту к открываемой или создаваемой подразделу. Этот параметр имеет тип ACCESS_MASK. Дополнительные сведения см. в разделе "Примечания".

[in] SubKeyName

Указатель на имя, которое должно быть назначено подразделу. Этот параметр должен быть допустимым указателем, не имеющим значения NULL , на инициализированную структуру типа UNICODE_STRING.

[in] CreateOptions

Флаги, указывающие параметры создания. Может быть равен нулю, если они не нужны. Этот параметр является обязательным, если параметр RegistryKeyType имеет значение GeneralRegistryKey; В противном случае метод не использует этот параметр. Дополнительные сведения см. в разделе "Примечания".

[out, optional] Disposition

Выходной указатель для значения ликвидации. Этот параметр указывает на выделенную вызывающим объектом переменную ULONG, в которую метод записывает значение состояния, указывающее, был ли создан новый ключ или был открыт существующий ключ. Этот параметр является необязательным и может быть указан как NULL , если он не нужен вызывающему объекту. Дополнительные сведения см. в разделе "Примечания".

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

NewSubKey возвращает STATUS_SUCCESS, если вызов успешно вывести допустимый указатель IRegistryKey с помощью параметра RegistrySubKey . В противном случае метод возвращает соответствующий код ошибки.

Комментарии

Метод NewSubKey либо открывает указанный раздел реестра, если он уже существует, либо создает новый раздел в реестре, если он не существует. Метод выводит указатель на интерфейс IRegistryKey нового раздела с помощью параметра RegistrySubKey . Метод также выводит значение состояния с помощью необязательного параметра Disposition , чтобы указать, был ли открыт или создан ключ.

Параметры DesiredAccess, CreateOptions и Disposition принимают значения, определенные для параметров с одинаковыми именами в вызове PcNewRegistryKey .

Параметр DesiredAccess — это маска управления доступом, которая указывает тип управления доступом, который должен иметь вызывающий объект к подразделу при доступе к нему через объект RegistrySubKey . Эту маску не следует путать с ACL (списком управления доступом), который управляет доступом пользователей к подразделу реестра. Когда функция PcNewRegistryKey или метод IPort::NewRegistryKey создает раздел реестра типа GeneralRegistryKey, параметр ObjectAttributes указывает атрибуты ключа, включая дескриптор безопасности, содержащий ACL. NewSubKey Однако, когда метод создает новый подраздел реестра, этот подраздел просто наследует ACL от родительского ключа. Метод NewSubKey не предоставляет средств для указания ACL, который отличается от списка ACL родительского ключа.

Параметры RegistrySubKey и OuterUnknown соответствуют соглашениям о подсчете ссылок для COM-объектов.

Требования

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

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

ACCESS_MASK

IPort::NewRegistryKey

IRegistryKey

PcNewRegistryKey

UNICODE_STRING