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
호출자에 대한 불투명 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 파일 시스템은 파일의 디스크에 기록되는 보안 설명자의 크기에 64KB 제한을 적용합니다. FAT 파일 시스템은 파일에 대한 보안 설명자를 지원하지 않습니다. 따라서 SecurityDescriptor 매개 변수가 가리키는 64KB 버퍼는 반환된 SECURITY_DESCRIPTOR 구조를 보유할 수 있을 만큼 충분히 커야 합니다.
FileObject 매개 변수가 가리키는 개체는 명명된 데이터 스트림을 나타낼 수 있습니다. 명명된 데이터 스트림에 대한 자세한 내용은 FILE_STREAM_INFORMATION 참조하세요.
보안 및 액세스 제어에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | fltkernel.h(Fltkernel.h 포함) |
라이브러리 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |