GetSecurityDescriptorDacl 함수(securitybaseapi.h)

GetSecurityDescriptorDacl 함수는 지정된 보안 설명자의 DACL(임의 액세스 제어 목록)에 대한 포인터를 검색합니다.

구문

BOOL GetSecurityDescriptorDacl(
  [in]  PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [out] LPBOOL               lpbDaclPresent,
  [out] PACL                 *pDacl,
  [out] LPBOOL               lpbDaclDefaulted
);

매개 변수

[in] pSecurityDescriptor

DACL을 포함하는 SECURITY_DESCRIPTOR 구조체에 대한 포인터입니다. 함수는 포인터를 검색합니다.

[out] lpbDaclPresent

지정된 보안 설명자에 DACL이 있음을 나타내는 값에 대한 포인터입니다. lpbDaclPresentTRUE이면 보안 설명자에 DACL이 포함되고 이 함수의 나머지 출력 매개 변수는 유효한 값을 받습니다. lpbDaclPresentFALSE이면 보안 설명자에 DACL이 포함되지 않으며 나머지 출력 매개 변수는 유효한 값을 받지 못합니다.

lpbDaclPresentTRUE 값이 pDaclNULL이 아님을 의미하지는 않습니다. 즉, pDaclNULL인 동안 lpbDaclPresentTRUE일 수 있습니다. 즉, NULL DACL이 적용됩니다. NULL DACL은 개체에 대한 모든 액세스를 암시적으로 허용하며 빈 DACL과 동일하지 않습니다. 빈 DACL은 개체에 대한 액세스를 허용하지 않습니다. 적절한 DACL을 만드는 방법에 대한 자세한 내용은 DACL 만들기를 참조하세요.

[out] pDacl

ACL( 액세스 제어 목록 )에 대한 포인터에 대한 포인터입니다. DACL이 있는 경우 함수는 pDacl 이 가리키는 포인터를 보안 설명자의 DACL 주소로 설정합니다. DACL이 없으면 값이 저장되지 않습니다.

함수가 pDacl이 가리키는 포인터에 NULL 값을 저장하는 경우 보안 설명자에 NULL DACL이 있습니다. NULL DACL은 개체에 대한 모든 액세스를 암시적으로 허용합니다.

애플리케이션이 NULL 이 아닌 DACL을 예상하지만 NULL DACL이 발생하는 경우 애플리케이션은 안전하게 실패하고 액세스를 허용하지 않아야 합니다.

[out] lpbDaclDefaulted

보안 설명자에 대한 DACL이 있는 경우 SECURITY_DESCRIPTOR_CONTROL 구조에서 SE_DACL_DEFAULTED 플래그 값으로 설정된 플래그에 대한 포인터입니다. 이 플래그가 TRUE이면 DACL이 기본 메커니즘에 의해 검색되었습니다. FALSE이면 사용자가 DACL을 명시적으로 지정했습니다.

반환 값

함수가 성공하면 함수는 0이 아닌 값을 반환합니다.

함수가 실패하면 0을 반환합니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 securitybaseapi.h(Windows.h 포함)
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

GetSecurityDescriptorControl

GetSecurityDescriptorGroup

GetSecurityDescriptorLength

GetSecurityDescriptorOwner

GetSecurityDescriptorSacl

InitializeSecurityDescriptor

IsValidSecurityDescriptor

하위 수준 Access Control

하위 수준 Access Control 함수

SECURITY_DESCRIPTOR

SECURITY_DESCRIPTOR_CONTROL

SetSecurityDescriptorDacl