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


Функция 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

См. также раздел

GetFileSecurity

GetPrivateObjectSecurity

GetUserObjectSecurity

Низкоуровневые контроль доступа

Низкоуровневые функции контроль доступа

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetKernelObjectSecurity