ACCESS_DENIED_OBJECT_ACE 구조체(winnt.h)

ACCESS_DENIED_OBJECT_ACE 구조체는 개체, 속성 집합 또는 속성에 대한 거부된 액세스를 제어하는 ACE(액세스 제어 항목)를 정의합니다. ACE에는 액세스 권한 집합, 개체 유형을 식별하는 GUID 및 시스템에서 액세스를 거부할 트러스티를 식별하는 SID(보안 식별자)가 포함됩니다. 또한 ACE에는 자식 개체에 의한 ACE 상속을 제어하는 GUID 및 플래그 집합이 포함되어 있습니다.

통사론

typedef struct _ACCESS_DENIED_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE;

회원

Header

ACE의 크기와 형식을 지정하는 ACE_HEADER 구조체입니다. 자식 개체에 의한 ACE 상속을 제어하는 플래그가 포함되어 있습니다. ACE_HEADER 구조체의 AceType 멤버는 ACCESS_DENIED_OBJECT_ACE_TYPE 설정해야 하며 AceSize 멤버는 ACCESS_DENIED_OBJECT_ACE 구조체에 할당된 총 바이트 수로 설정해야 합니다.

Mask

시스템에서 트러스티거부할 액세스 권한을 지정하는 ACCESS_MASK.

Flags

ObjectTypeInheritedObjectType 멤버가 있는지 여부를 나타내는 비트 플래그 집합입니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
0
ObjectTypeInheritedObjectType 없습니다. SidStart 멤버는 Flags 멤버 바로 뒤를 따릅니다.
ACE_OBJECT_TYPE_PRESENT
ObjectType 있으며 GUID포함합니다.

이 값을 지정하지 않으면 InheritedObjectType 멤버는 Flags 멤버 바로 뒤에 잇습니다.

ACE_INHERITED_OBJECT_TYPE_PRESENT
InheritedObjectType 있으며 GUID포함합니다.

이 값을 지정하지 않으면 모든 유형의 자식 개체가 ACE를 상속할 수 있습니다.

ObjectType

이 멤버는 ACE_OBJECT_TYPE_PRESENT 비트가 Flags 멤버에 설정된 경우에만 존재합니다. 그렇지 않으면 InheritedObjectType 멤버가 Flags 멤버 바로 뒤에 잇습니다.

이 멤버가 있는 경우 속성 집합, 속성, 확장된 오른쪽 또는 자식 개체의 형식을 식별하는 GUID 구조체입니다. 이 GUID 목적은 Mask 멤버에 지정된 액세스 권한에 따라 달라집니다.

의미
ADS_RIGHT_DS_CONTROL_ACCESS
ObjectTypeGUID 확장된 액세스 권한을 식별합니다.
ADS_RIGHT_DS_CREATE_CHILD
ObjectTypeGUID 자식 개체의 형식을 식별합니다. ACE는 이러한 유형의 자식 개체를 만들 수 있는 트러스티의 권한을 제어합니다.
ADS_RIGHT_DS_READ_PROP
ObjectTypeGUID 개체의 속성 집합 또는 속성을 식별합니다. ACE는 속성 또는 속성 집합을 읽을 수 있는 트러스티의 권한을 제어합니다.
ADS_RIGHT_DS_WRITE_PROP
ObjectTypeGUID 개체의 속성 집합 또는 속성을 식별합니다. ACE는 속성 또는 속성 집합을 쓸 수 있는 트러스티의 권한을 제어합니다.
ADS_RIGHT_DS_SELF
ObjectTypeGUID 유효성이 검사된 쓰기를 식별합니다.

InheritedObjectType

이 멤버는 ACE_INHERITED_OBJECT_TYPE_PRESENT 비트가 Flags 멤버에 설정된 경우에만 존재합니다.

이 멤버가 있는 경우 ACE를 상속할 수 있는 자식 개체의 형식을 식별하는 GUID 구조체입니다. 상속은 ACE_HEADER상속 플래그뿐만 아니라 자식 개체에 배치된 상속에 대한 보호에도 의해 제어됩니다.

이 멤버의 오프셋은 다를 수 있습니다. Flags 멤버에 ACE_OBJECT_TYPE_PRESENT 플래그가 없으면 InheritedObjectType 멤버는 ObjectType 멤버로 지정된 오프셋에서 시작됩니다.

SidStart

액세스 권한이 거부된 트러스티 식별하는 SID의 첫 번째 DWORD 지정합니다. SID의 나머지 바이트는 SidStart 멤버 이후 연속 메모리에 저장됩니다. 이 SID는 애플리케이션 데이터에 추가할 수 있습니다.

이 멤버의 오프셋은 다를 수 있습니다. Flags 멤버가 0이면 ObjectType 멤버가 지정한 오프셋에서 SidStart 멤버가 시작됩니다. Flags 플래그가 하나만 포함된 경우(ACE_OBJECT_TYPE_PRESENT 또는 ACE_INHERITED_OBJECT_TYPE_PRESENT) SidStart 멤버는 InheritedObjectType 멤버가 지정한 오프셋에서 시작합니다.

발언

ObjectTypeInheritedObjectTypeGUID 지정되지 않은 경우 ACCESS_DENIED_OBJECT_ACE 구조체는 ACCESS_DENIED_ACE 구조체에서 사용하는 의미 체계와 동일합니다. 이 경우 더 작고 효율적이므로 ACCESS_DENIED_ACE 구조를 사용합니다.

ACCESS_DENIED_OBJECT_ACE 포함하는 ACL은 ACL 헤더에 ACL_REVISION_DS 수정 번호를 지정해야 합니다.

Mask 멤버가 지정한 액세스 권한은 SidStart 멤버에 저장된 SID와 일치하는 활성화된 SID를 소유한 트러스티 거부됩니다.

ACCESS_DENIED_OBJECT_ACE 구조는 AddAccessDeniedObjectAce 함수를 호출하여 ACL(액세스 제어 목록)에서 만들 수 있습니다. 이 함수를 사용하는 경우 ObjectType GUID 구조를 수용하고 InheritedObjectType 멤버 중 하나 또는 둘 다 있는 경우, 트러스티의 SID를 수용하는 데 필요한 올바른 양의 메모리가 자동으로 할당됩니다. 또한 Header.AceTypeHeader.AceSize 멤버의 값이 자동으로 설정됩니다. ACL 외부에서 ACCESS_DENIED_OBJECT_ACE 구조가 만들어지면 ObjectType GUID 구조체와 InheritedObjectType 멤버 중 하나 또는 둘 다 있는 경우 충분한 메모리를 할당해야 하며, SidStart 멤버에 있는 트러스티의 전체 SID와 그 뒤의 연속 메모리를 수용해야 합니다. 또한 Header.AceTypeHeader.AceSize 멤버의 값은 애플리케이션에서 명시적으로 설정해야 합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
헤더 winnt.h(Windows.h 포함)

참고 항목

ACE

ACL

AddAccessAllowedObjectAce

GUID

SID