RtlNormalizeSecurityDescriptor 함수(ntddk.h)

이 루틴은 가능한 한 자주 두 개의 동등한 보안 설명자를 $SDS 단일 인스턴스화할 수 있어야 하고 저장된 보안 설명자가 가능한 한 작아야 한다는 보조 목표를 목표로 레이아웃을 수정하는 방법에 대한 보안 설명자를 검사합니다.

구문

NTSYSAPI BOOLEAN RtlNormalizeSecurityDescriptor(
  PSECURITY_DESCRIPTOR *SecurityDescriptor,
  ULONG                SecurityDescriptorLength,
  PSECURITY_DESCRIPTOR *NewSecurityDescriptor,
  PULONG               NewSecurityDescriptorLength,
  BOOLEAN              CheckOnly
);

매개 변수

SecurityDescriptor

정규화할 SECURITY_DESCRIPTOR 대한 포인터입니다. 보안 설명자는 자체 상대 형식이어야 합니다. NewSecurityDescriptor가 제공되지 않으면 수정된 경우 페이징 풀에서 새로 할당된 보안 설명자로 이 위치를 업데이트할 수 있습니다(원래 보안 설명자 해제).

SecurityDescriptorLength

정규화할 보안 설명자의 길이(바이트)입니다.

NewSecurityDescriptor

가 있고 NULL을 가리키는 경우 는 SecurityDescriptor를 업데이트하는 대신 수정된 경우 페이징 풀에서 새로 할당된 보안 설명자에 대한 포인터를 받습니다.

가 있고 비 NULL을 가리키는 경우 수정된 보안 설명자는 대신 호출자가 제공하는 버퍼( SecurityDescriptorLength 길이 이상으로 가정)에 직접 생성됩니다.

NewSecurityDescriptorLength

필요에 따라 이 루틴이 수정된 경우 수정된 보안 설명자의 길이(바이트)를 받습니다.

CheckOnly

TRUE이면 수정이 수행될 때 루틴이 아무 작업도 수행하지 않음을 지정하는 BOOLEAN 값입니다. 이 경우 수정된 보안 설명자가 만들어지지 않습니다.

반환 값

수정되었거나 수정되었으면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다(실패 포함).

설명

이 루틴이 수정된 경우 호출자가 CheckOnly를 지정하지 않는 한 수정된 보안 설명자를 반환합니다. 이 설명자는 수정할 것인지만 알고자 합니다.

현재 지원되는 변환은 다음과 같습니다.

  • 섹션을 Sacl = Dacl => Owner =>> Group 순서로 정렬합니다.

  • 섹션 간에 불필요한 안쪽 여백(단순 맞춤 제외)을 제거합니다.

  • 섹션 간에 맞춤 바이트가 0개입니다.

  • ACL이 없는 Sacl을 제거합니다.

  • Sacl 및 Dacl에서 중복된 ALLOW ACE를 제거합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 2004
머리글 ntddk.h(Ntddk.h 포함)
IRQL APC_LEVEL