ZwSetSecurityObject 함수(ntifs.h)

ZwSetSecurityObject 루틴은 개체의 보안 상태를 설정합니다.

구문

NTSYSAPI NTSTATUS ZwSetSecurityObject(
  [in] HANDLE               Handle,
  [in] SECURITY_INFORMATION SecurityInformation,
  [in] PSECURITY_DESCRIPTOR SecurityDescriptor
);

매개 변수

[in] Handle

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

[in] SecurityInformation

설정할 정보를 지정하는 SECURITY_INFORMATION값입니다. 다음 값 중 하나 이상의 조합일 수 있습니다.

의미
DACL_SECURITY_INFORMATION 개체의 DACL(임의 액세스 제어 목록)을 설정할 것임을 나타냅니다. WRITE_DAC 액세스가 필요합니다.
GROUP_SECURITY_INFORMATION 개체의 기본 그룹 식별자를 설정할 것임을 나타냅니다. WRITE_OWNER 액세스가 필요합니다.
OWNER_SECURITY_INFORMATION 개체의 소유자 식별자를 설정할 것임을 나타냅니다. WRITE_OWNER 액세스가 필요합니다.
SACL_SECURITY_INFORMATION 개체의 시스템 ACL(SACL)을 설정할 것임을 나타냅니다. ACCESS_SYSTEM_SECURITY 액세스가 필요합니다.

[in] SecurityDescriptor

개체에 대해 설정할 보안 설명자에 대한 포인터입니다.

반환 값

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

반환 코드 설명
STATUS_ACCESS_DENIED 핸들 에 필요한 액세스 권한이 없습니다.
STATUS_ACCESS_VIOLATION SecurityDescriptorNULL 포인터입니다.
STATUS_INSUFFICIENT_RESOURCES 개체의 보안 설명자를 캡처할 수 없습니다.
STATUS_INVALID_ACL 개체의 보안 설명자에 잘못된 ACL이 포함되어 있습니다.
STATUS_INVALID_HANDLE 핸들 이 유효한 핸들이 아닙니다.
STATUS_INVALID_SECURITY_DESCR SecurityDescriptor 는 유효한 보안 설명자를 가리키지 않습니다.
STATUS_INVALID_SID 개체의 보안 설명자에 잘못된 SID가 포함되어 있습니다.
STATUS_OBJECT_TYPE_MISMATCH 핸들 이 예상된 형식의 핸들이 아닙니다.
STATUS_UNKNOWN_REVISION 개체 보안 설명자의 수정 수준을 알 수 없거나 지원되지 않습니다.

설명

보안 설명자는 절대 또는 자기 상대적 형식일 수 있습니다. 자체 상대 형식에서 구조체의 모든 멤버는 메모리에 인접하게 위치합니다. 절대 형식의 구조체에는 멤버에 대한 포인터만 포함됩니다. 자세한 내용은 Windows SDK 설명서의 보안 섹션에서 "절대 및 Self-Relative 보안 설명자"를 참조하세요.

보안 및 액세스 제어에 대한 자세한 내용은 Windows SDK에서 이러한 항목에 대한 설명서를 참조하세요.

미니 필터는 ZwSetSecurityObject 대신 FltSetSecurityObject를 사용해야 합니다.

ZwSetSecurityObject의 호출자는 IRQL = PASSIVE_LEVEL 및 특수 커널 APC를 사용하도록 설정된 상태에서 실행되어야 합니다.

참고

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

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

요구 사항

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

추가 정보

FltSetSecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용

ZwQuerySecurityObject