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 | SecurityDescriptor 는 NULL 포인터입니다. |
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 보안 모델 및 Windows SDK의 이러한 topics 대한 설명서를 참조하세요.
미니필터는 ZwSetSecurityObject 대신 FltSetSecurityObject를 사용해야 합니다.
ZwSetSecurityObject의 호출자는 IRQL = PASSIVE_LEVEL 및 특수 커널 APC를 사용하도록 설정된 상태에서 실행되어야 합니다.
참고
ZwSetSecurityObject 함수에 대한 호출이 사용자 모드에서 발생하는 경우 "ZwSetSecurityObject" 대신 "NtSetSecurityObject"라는 이름을 사용해야 합니다.
커널 모드 드라이버에서 호출하는 경우 Windows 네이티브 시스템 서비스 루틴의 NtXxx 및 ZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 NtXxx 버전과 ZwXxx 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP |
대상 플랫폼 | 유니버설 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL(설명 섹션 참조) |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |