Функция FltQuerySecurityObject (fltkernel.h)
FltQuerySecurityObject извлекает копию дескриптора безопасности объекта.
Синтаксис
NTSTATUS FLTAPI FltQuerySecurityObject(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[in] SECURITY_INFORMATION SecurityInformation,
[in, out] PSECURITY_DESCRIPTOR SecurityDescriptor,
[in] ULONG Length,
[out, optional] PULONG LengthNeeded
);
Параметры
[in] Instance
Указатель непрозрачного экземпляра для вызывающего объекта. Этот параметр является обязательным и не может быть null.
[in] FileObject
Указатель объекта файла для объекта, дескриптор безопасности которого запрашивается. Этот параметр является обязательным и не может быть null.
[in] SecurityInformation
SECURITY_INFORMATION значение. Этот параметр является обязательным и должен иметь одно из следующих значений:
Значение SecurityInformation | Значение |
---|---|
OWNER_SECURITY_INFORMATION | Идентификатор владельца объекта запрашивается. Требуется READ_CONTROL доступ. |
GROUP_SECURITY_INFORMATION | Запрашивается идентификатор основной группы объекта. Требуется READ_CONTROL доступ. |
DACL_SECURITY_INFORMATION | Запрашивается список управления доступом (DACL) объекта. Требуется READ_CONTROL доступ. |
SACL_SECURITY_INFORMATION | Системный ACL (SACL) объекта запрашивается. Требуется ACCESS_SYSTEM_SECURITY доступ. |
[in, out] SecurityDescriptor
Указатель на предоставленный вызывающим выходной буфер, который получает копию дескриптора безопасности для указанного объекта. Структура SECURITY_DESCRIPTOR возвращается в автономном формате. Этот параметр является необязательным и может быть null.
[in] Length
Размер в байтах буфера SecurityDescriptor.
[out, optional] LengthNeeded
Указатель на выделенную вызывающим переменную, которая получает количество байтов, необходимых для хранения скопированного дескриптора безопасности, возвращаемого в буфере, на который указывает параметр SecurityDescriptor. Этот параметр является необязательным и может быть null.
Возвращаемое значение
FltQuerySecurityObject возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих:
Возвращаемый код | Описание |
---|---|
|
Вызывающий объект не получил необходимый доступ. Это код ошибки. |
|
Буфер слишком мал, чтобы содержать дескриптор безопасности. Ни одна из сведений о безопасности не была скопирована в буфер. Это код ошибки. |
Замечания
Дескриптор безопасности может находиться в абсолютной или относительной форме. В самостоятельной форме все члены структуры находятся в памяти. В абсолютной форме структура содержит только указатели на его члены.
Файловая система NTFS накладывает ограничение 64 КБ на размер дескриптора безопасности, записываемого на диск для файла. (Файловая система FAT не поддерживает дескрипторы безопасности для файлов.) Таким образом, буфер размером 64 КБ, на который указывает параметр SecurityDescriptor, гарантированно будет достаточно большим для хранения возвращаемой SECURITY_DESCRIPTOR структуры.
Объект, указывающий параметр FileObject, который может представлять именованный поток данных. Дополнительные сведения об именованных потоках данных см. в FILE_STREAM_INFORMATION.
Дополнительные сведения о безопасности и управлении доступом см. в документации по пакету SDK для Microsoft Windows.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | fltkernel.h (include Fltkernel.h) |
библиотеки | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |