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


Функция RegDeleteKeyExA (winreg.h)

Удаляет подраздел и его значения из указанного представления реестра для конкретной платформы. Обратите внимание, что имена ключей не учитывает регистр.

Чтобы удалить вложенный ключ как транзакционную операцию, вызовите функцию RegDeleteKeyTransacted.

Синтаксис

LSTATUS RegDeleteKeyExA(
  [in] HKEY   hKey,
  [in] LPCSTR lpSubKey,
  [in] REGSAM samDesired,
       DWORD  Reserved
);

Параметры

[in] hKey

Дескриптор открытого раздела реестра. Права доступа этого ключа не влияют на операцию удаления. Дополнительные сведения о правах доступа см. в разделе "Безопасность и права доступа реестра".

Этот дескриптор возвращается функцией regCreateKeyExили RegOpenKeyEx или одним из следующих предварительно определенных ключей:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

[in] lpSubKey

Имя ключа, который необходимо удалить. Этот ключ должен быть подразделом ключа, указанного значением параметра hKey.

Функция открывает подраздел с правом доступа DELETE.

Имена ключей не учитывает регистр.

Значение этого параметра не может быть null.

[in] samDesired

Маска доступа указывает представление реестра для конкретной платформы.

Ценность Значение
KEY_WOW64_32KEY
0x0200
Удалите ключ из 32-разрядного представления реестра.
KEY_WOW64_64KEY
0x0100
Удалите ключ из 64-разрядного представления реестра.

Reserved

Этот параметр зарезервирован и должен быть нулевым.

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

Если функция выполнена успешно, возвращаемое значение ERROR_SUCCESS.

Если функция завершается ошибкой, возвращаемое значение представляет собой ненулевой код ошибки, определенный в Winerror.h. Функцию FormatMessage можно использовать с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения универсального описания ошибки.

Замечания

Удаленный ключ не удаляется до закрытия последнего дескриптора.

В WOW64 32-разрядные приложения просматривают дерево реестра, отдельное от дерева реестра, которое просматривает 64-разрядные приложения. Эта функция позволяет приложению удалять запись в альтернативном представлении реестра.

У удаленного подраздела не должно быть вложенных ключей. Чтобы удалить ключ и все его подразделы, необходимо перечислить вложенные ключи и удалить их по отдельности. Чтобы удалить ключи рекурсивно, используйте функцию RegDeleteTree или SHDeleteKey.

Если функция выполнена успешно, RegDeleteKeyEx удаляет указанный раздел из реестра. Удаляется весь ключ, включая все его значения.

Заметка

В устаревших версиях Windows этот API также предоставляется kernel32.dll.

Заметка

Заголовок winreg.h определяет RegDeleteKeyEx как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista, Windows XP Professional x64 Edition [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2008, Windows Server 2003 с пакетом обновления 1 (SP1) [классические приложения только]
целевая платформа Виндоус
заголовка winreg.h (включая Windows.h)
библиотеки Advapi32.lib
DLL Advapi32.dll

См. также

RegCreateKeyEx

RegDeleteKeyTransacted

RegOpenKeyEx

Функции реестра

перенаправления реестра