SeSetSecurityDescriptorInfo 함수(ntifs.h)

SeSetSecurityDescriptorInfo 루틴은 개체의 보안 설명자를 설정합니다.

구문

NTSTATUS SeSetSecurityDescriptorInfo(
  [in, optional] PVOID                 Object,
  [in]           PSECURITY_INFORMATION SecurityInformation,
                 PSECURITY_DESCRIPTOR  ModificationDescriptor,
  [in, out]      PSECURITY_DESCRIPTOR  *ObjectsSecurityDescriptor,
  [in]           POOL_TYPE             PoolType,
  [in]           PGENERIC_MAPPING      GenericMapping
);

매개 변수

[in, optional] Object

보안 설명자를 설정할 개체에 대한 포인터입니다. 보안 할당량 정보를 업데이트하는 데 사용됩니다.

[in] SecurityInformation

개체에 적용할 보안 정보를 지정하는 비트 마스크에 대한 포인터입니다. 다음 값 중 하나 이상의 조합일 수 있습니다.

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

ModificationDescriptor

개체에 적용할 입력 보안 설명자입니다. 이 루틴의 호출자는 SeSetSecurityDescriptorInfo를 호출하기 전에 전달된 보안 설명자를 검색하고 캡처하고 나중에 해제해야 합니다.

[in, out] ObjectsSecurityDescriptor

개체의 보안 설명자에 대한 포인터에 대한 포인터입니다. 보안 설명자는 자체 상대 형식이어야 합니다. 호출자는 더 이상 필요하지 않은 경우 이 구조를 해제할 책임이 있습니다.

[in] PoolType

다음 중 하나일 수 있는 새 보안 설명자를 할당할 때 사용할 풀 유형을 지정합니다.

  • NonPagedPool
  • PagedPool
  • NonPagedPoolCacheAligned
  • PagedPoolCacheAligned

일반적으로 호출자는 IRQL >= DISPATCH_LEVEL 또는 임의 스레드 컨텍스트에서 버퍼에 액세스할 경우 PagedPool을 지정하거나 그렇지 않으면 NonPagedPool을 지정합니다.

NonPagedPoolMustSucceedNonPagedPoolCacheAlignedMustS 풀 형식은 사용되지 않으므로 더 이상 사용하지 않아야 합니다.

[in] GenericMapping

액세스하는 개체에 대한 특정 및 표준 액세스 형식에 대한 제네릭 매핑을 지정하는 GENERIC_MAPPING 구조체에 대한 포인터입니다. 이 매핑 구조는 이 루틴에 전달되기 전에 액세스(즉, 필요한 경우 캡처됨)에 안전하게 액세스할 수 있어야 합니다.

반환 값

반환 코드 설명
STATUS_SUCCESS 개체의 보안 설명자가 수정되었습니다.
STATUS_BAD_DESCRIPTOR_FORMAT 제공된 개체의 보안 설명자가 자체 상대 형식이 아닙니다.
STATUS_NO_SECURITY_ON_OBJECT 개체에 보안 설명자가 없습니다.

설명

SeSetSecurityDescriptorInfo 는 개체의 기존 보안 설명자를 수정합니다. 개체에 보안 설명자가 없으면 SeSetSecurityDescriptorInfo 호출이 실패합니다.

개체가 ACE(액세스 제어 항목)의 자동 상속을 지원하는지 여부를 지정하려면 SeSetSecurityDescriptorInfoEx를 사용합니다.

보안 설명자는 절대 또는 자기 상대 형식일 수 있습니다. 자체 상대 형식에서 구조체의 모든 멤버는 메모리에 연속적으로 배치됩니다. 절대 형식에서 구조체에는 멤버에 대한 포인터만 포함됩니다.

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

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

추가 정보

에이스

ACL

GENERIC_MAPPING

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

SeSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx