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


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

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

Синтаксис

LSTATUS RegDeleteKeyTransactedA(
  [in] HKEY   hKey,
  [in] LPCSTR lpSubKey,
  [in] REGSAM samDesired,
       DWORD  Reserved,
  [in] HANDLE hTransaction,
       PVOID  pExtendedParameter
);

Параметры

[in] hKey

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

Этот дескриптор возвращается RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyExили функцией RegOpenKeyTransacted. Он также может быть одним из следующих предопределенных ключей:

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

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

[in] hTransaction

Дескриптор активной транзакции. Этот дескриптор возвращается функцией CreateTransaction.

pExtendedParameter

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

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

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

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

Замечания

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

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

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

Если функция выполнена успешно, RegDeleteKeyTransacted удаляет указанный раздел из реестра. Удаляется весь ключ, включая все его значения. Чтобы удалить все дерево как транзакцию, используйте функцию RegDeleteTree с дескриптором, возвращенным из RegCreateKeyTransacted или RegOpenKeyTransacted.

Заметка

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

Требования

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

См. также

RegCreateKeyTransacted

RegOpenKeyTransacted

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

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