Функция RegGetKeySecurity возвращает копию дескриптора безопасности, защищающий указанный открытый ключ реестра.
LONG RegGetKeySecurity(
HKEY hKey, // открытый ключ реестра
SECURITY_INFORMATION SecurityInformation, // содержание дескриптора
PSECURITY_DESCRIPTOR pSecurityDescriptor, // адрес дескриптора ключа
LPDWORD lpcbSecurityDescriptor // адрес размера буфера для дескриптора
);
Параметры:
hKey |
Определяет открытый ключ, для которого будет возвращен дескриптор безопасности. |
SecurityInformation |
Определяет структуру SECURITY_INFORMATION, которая указывает требуемую информацию о безопасности. |
pSecurityDescriptor |
Адрес буфера, в который возвращается копия запрашиваемого дескриптора безопасности. |
lpcbSecurityDescriptor |
Адрес переменной, в которой указан размер в байтах буфера, на который указывает параметр pSecurityDescriptor. Когда функция возвращается, переменная содержит количество записанных в буфер байт. |
Возвращаемые значения:
Если функция успешна, возвращается значение ERROR_SUCCESS.
При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.
Замечания:
Если буфер, определенный в параметре pSecurityDescriptor, слишком мал, функция возвращает ERROR_INSUFFICIENT_BUFFER и параметр lpcbSecurityDescriptor содежит количество байт, требуемых для получения дескриптора безопасности.
Для чтения дескриптора безопасности указанного ключа, вызывающий процесс должен иметь разрешение доступа READ_CONTROL, когда ключ открыт, или должен быть владельцем ключа. (доступ READ_CONTROL разрешает права доступа KEY_READ, KEY_WRITE, KEY_EXECUTE, и KEY_ALL_ACCESS.) К дополнению, вызывающий должен иметь привилегию SE_SECURITY_NAME для чтения системного списка управления доступом (SACL).
Смотрите также:
RegDeleteKey, RegOpenKeyEx , RegSetKeySecurity, SECURITY_INFORMATION
|