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


Функция GetFileSecurityA (winbase.h)

Функция GetFileSecurity получает указанные сведения о безопасности файла или каталога. Полученные сведения ограничиваются правами доступа и привилегиями вызывающего объекта.

Функция GetNamedSecurityInfo предоставляет функции, аналогичные GetFileSecurity для файлов и других типов объектов.

Синтаксис

BOOL GetFileSecurityA(
  [in]            LPCSTR               lpFileName,
  [in]            SECURITY_INFORMATION RequestedInformation,
  [out, optional] PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [in]            DWORD                nLength,
  [out]           LPDWORD              lpnLengthNeeded
);

Параметры

[in] lpFileName

Указатель на строку, завершающуюся значением NULL, которая указывает файл или каталог, для которых извлекаются сведения о безопасности.

[in] RequestedInformation

Значение SECURITY_INFORMATION , определяющее запрашиваемые сведения о безопасности.

[out, optional] pSecurityDescriptor

Указатель на буфер, получающий копию дескриптора безопасности объекта, указанного параметром lpFileName . Вызывающий процесс должен иметь разрешение на просмотр указанных аспектов состояния безопасности объекта. Структура SECURITY_DESCRIPTOR возвращается в формате самооблагающего дескриптора безопасности .

[in] nLength

Задает размер (в байтах) буфера, на который указывает параметр pSecurityDescriptor .

[out] lpnLengthNeeded

Указатель на переменную, получающую количество байтов, необходимое для хранения полного дескриптора безопасности. Если возвращенное число байтов меньше или равно nLength, в выходном буфере возвращается весь дескриптор безопасности; В противном случае дескриптор не возвращается.

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

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

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Чтобы считывать владельца, группу или DACL из дескриптора безопасности для указанного файла или каталога, daCL для файла или каталога должен предоставлять READ_CONTROL доступ вызывающему объекту или же вызывающий объект должен быть владельцем файла или каталога.

Чтобы считывать saCL файла или каталога, для вызывающего процесса необходимо включить привилегию SE_SECURITY_NAME.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

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

GetKernelObjectSecurity

GetNamedSecurityInfo

GetPrivateObjectSecurity

GetUserObjectSecurity

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

Функции контроль доступа низкого уровня

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetFileSecurity