Функция GetKernelObjectSecurity (securitybaseapi.h)
Функция GetKernelObjectSecurity извлекает копию дескриптора безопасности , который защищает объект ядра.
Синтаксис
BOOL GetKernelObjectSecurity(
[in] HANDLE Handle,
[in] SECURITY_INFORMATION RequestedInformation,
[out, optional] PSECURITY_DESCRIPTOR pSecurityDescriptor,
[in] DWORD nLength,
[out] LPDWORD lpnLengthNeeded
);
Параметры
[in] Handle
Дескриптор объекта ядра.
[in] RequestedInformation
Задает значение SECURITY_INFORMATION , определяющее запрашиваемые сведения о безопасности.
[out, optional] pSecurityDescriptor
Указатель на буфер, который функция заполняет копией дескриптора безопасности указанного объекта. Вызывающий процесс должен иметь право просматривать указанные аспекты состояния безопасности объекта. Структура SECURITY_DESCRIPTOR возвращается в автономном формате.
[in] nLength
Задает размер (в байтах) буфера, на который указывает параметр pSecurityDescriptor .
[out] lpnLengthNeeded
Указатель на переменную, которая получает количество байтов, необходимых для буфера, на который указывает параметр pSecurityDescriptor . Если значение этой переменной больше значения параметра nLength при возврате функции, дескриптор безопасности не копируется в буфер.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Чтобы считать владельца, группу или DACL из дескриптора безопасности объекта ядра, вызывающему процессу должен быть предоставлен READ_CONTROL доступ при открытии дескриптора. Чтобы получить доступ READ_CONTROL, вызывающий объект должен быть владельцем объекта или dacl объекта должен предоставить доступ.
Чтобы прочитать saCL из дескриптора безопасности, вызывающему процессу должен быть предоставлен ACCESS_SYSTEM_SECURITY доступ при открытии дескриптора. Правильный способ получить этот доступ — включить привилегию SE_SECURITY_NAME в текущем маркере вызывающего объекта, открыть дескриптор для ACCESS_SYSTEM_SECURITY доступа, а затем отключить привилегию.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | securitybaseapi.h (включая Windows.h) |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |
См. также раздел
Низкоуровневые контроль доступа