Функция RegGetKeySecurity возвращает копию дескриптора безопасности, защищающий указанный открытый ключ реестра.
LONGRegGetKeySecurity ( HKEYhKey , // открытый ключ реестра SECURITY_INFORMATIONSecurityInformation , // содержание дескриптора PSECURITY_DESCRIPTORpSecurityDescriptor , // адрес дескриптора ключа LPDWORDlpcbSecurityDescriptor // адрес размера буфера для дескриптора );
Параметры:
Определяет открытый ключ, для которого будет возвращен дескриптор безопасности. | |
Определяет структуру SECURITY_INFORMATION, которая указывает требуемую информацию о безопасности. | |
Адрес буфера, в который возвращается копия запрашиваемого дескриптора безопасности. | |
Адрес переменной, в которой указан размер в байтах буфера, на который указывает параметр pSecurityDescriptor. Когда функция возвращается, переменная содержит количество записанных в буфер байт. |
Возвращаемые значения:
Если функция успешна, возвращается значение ERROR_SUCCESS.
При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.
При ошибке, возвращаемое значение – это код ошибки, объявленный в 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).
Для чтения дескриптора безопасности указанного ключа, вызывающий процесс должен иметь разрешение доступа READ_CONTROL, когда ключ открыт, или должен быть владельцем ключа. (доступ READ_CONTROL разрешает права доступа KEY_READ, KEY_WRITE, KEY_EXECUTE, и KEY_ALL_ACCESS.) К дополнению, вызывающий должен иметь привилегию SE_SECURITY_NAME для чтения системного списка управления доступом (SACL).