Функция 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 |
См. также раздел
Низкоуровневые контроль доступа