NtQuerySecurityObject 함수(ntifs.h)

NtQuerySecurityObject 루틴은 개체의 보안 설명자의 복사본을 검색합니다.

구문

__kernel_entry NTSYSCALLAPI NTSTATUS NtQuerySecurityObject(
  [in]  HANDLE               Handle,
  [in]  SECURITY_INFORMATION SecurityInformation,
  [out] PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]  ULONG                Length,
  [out] PULONG               LengthNeeded
);

매개 변수

[in] Handle

보안 설명자를 쿼리할 개체에 대한 핸들입니다. 이 핸들에는 SecurityInformation 매개 변수의 설명에 표시된 테이블의 의미 열에 지정된 액세스 권한이 있어야 합니다.

[in] SecurityInformation

다음 중 하나 이상의 조합으로 쿼리할 정보를 지정하는 SECURITY_INFORMATION 값입니다.

의미
OWNER_SECURITY_INFORMATION 개체의 소유자 식별자가 쿼리되고 있습니다. READ_CONTROL 액세스가 필요합니다.
GROUP_SECURITY_INFORMATION 개체의 기본 그룹 식별자가 쿼리되고 있습니다. READ_CONTROL 액세스가 필요합니다.
SACL_SECURITY_INFORMATION 개체의 SACL(시스템 ACL)이 쿼리되고 있습니다. ACCESS_SYSTEM_SECURITY 액세스가 필요합니다.
DACL_SECURITY_INFORMATION 개체의 DACL(임의 액세스 제어 목록)이 쿼리되고 있습니다. READ_CONTROL 액세스가 필요합니다.

[out] SecurityDescriptor

NtQuerySecurityObject가 지정한 보안 설명자의 복사본으로 채우는 호출자 할당 버퍼입니다. SECURITY_DESCRIPTOR 구조체는 자기 상대 형식으로 반환됩니다.

[in] Length

SecurityDescriptor가 가리키는 버퍼의 크기(바이트)입니다.

[out] LengthNeeded

복사한 보안 설명자를 저장하는 데 필요한 바이트 수를 수신하는 호출자가 할당한 변수에 대한 포인터입니다.

반환 값

NtQuerySecurityObject는 STATUS_SUCCESS 또는 적절한 오류 상태 반환합니다. 가능한 오류 상태 코드에는 다음이 포함됩니다.

반환 코드 설명
STATUS_ACCESS_DENIED 핸들 에 필요한 액세스 권한이 없습니다.
STATUS_BUFFER_TOO_SMALL 버퍼가 보안 설명자에 비해 너무 작습니다. 보안 정보가 버퍼에 복사되지 않았습니다.
STATUS_INVALID_HANDLE 핸들 이 유효한 핸들이 아니었습니다.
STATUS_OBJECT_TYPE_MISMATCH 핸들 이 예상된 형식의 핸들이 아니었습니다.

설명

미니필터는 FltQuerySecurityObject를 호출해야 합니다.

보안 설명자는 절대 또는 자기 상대 형식일 수 있습니다. 자체 상대 형식에서 구조체의 모든 멤버는 메모리에 연속적으로 배치됩니다. 절대 형식에서 구조체에는 멤버에 대한 포인터만 포함됩니다. 자세한 내용은 절대 및 Self-Relative 보안 설명자를 참조하세요.

NTFS 파일 시스템은 파일의 디스크에 기록되는 보안 설명자의 크기에 64K 제한을 적용합니다. FAT 파일 시스템은 파일에 대한 보안 설명자를 지원하지 않습니다. 따라서 64K SecurityDescriptor 버퍼는 반환된 SECURITY_DESCRIPTOR 구조를 보유할 수 있을 만큼 충분히 커야 합니다.

보안 및 액세스 제어에 대한 자세한 내용은 드라이버 개발자를 위한 Windows 보안 모델 및 Windows SDK의 이러한 topics 대한 설명서를 참조하세요.

참고

NtQuerySecurityObject 함수에 대한 호출이 사용자 모드에서 발생하는 경우 "ZwQuerySecurityObject" 대신 "NtQuerySecurityObject" 이름을 사용해야 합니다.

커널 모드 드라이버에서 호출하는 경우 Windows 네이티브 시스템 서비스 루틴의 NtXxxZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 NtXxx 버전과 ZwXxx 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs, PowerIrpDDis

추가 정보

FltQuerySecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

NtSetSecurityObject