GetNamedSecurityInfoA 함수(aclapi.h)

GetNamedSecurityInfo 함수는 이름으로 지정된 개체에 대한 보안 설명자의 복사본을 검색합니다.

구문

DWORD GetNamedSecurityInfoA(
  [in]            LPCSTR               pObjectName,
  [in]            SE_OBJECT_TYPE       ObjectType,
  [in]            SECURITY_INFORMATION SecurityInfo,
  [out, optional] PSID                 *ppsidOwner,
  [out, optional] PSID                 *ppsidGroup,
  [out, optional] PACL                 *ppDacl,
  [out, optional] PACL                 *ppSacl,
  [out, optional] PSECURITY_DESCRIPTOR *ppSecurityDescriptor
);

매개 변수

[in] pObjectName

보안 정보를 검색할 개체의 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 다양한 개체 형식에 대한 문자열 형식에 대한 설명은 SE_OBJECT_TYPE 참조하세요.

[in] ObjectType

pObjectName 매개 변수로 명명된 개체의 형식을 나타내는 SE_OBJECT_TYPE 열거형의 값을 지정합니다.

[in] SecurityInfo

검색할 보안 정보의 유형을 나타내는 비트 플래그 집합입니다. 이 매개 변수는 SECURITY_INFORMATION 비트 플래그의 조합일 수 있습니다.

[out, optional] ppsidOwner

보안 설명자에 소유자 SID가 없는 경우 ppSecurityDescriptor 또는 NULL에 반환된 보안 설명자의 소유자 SID에 대한 포인터를 수신하는 변수에 대한 포인터입니다. 반환된 포인터는 OWNER_SECURITY_INFORMATION 플래그를 설정한 경우에만 유효합니다. 또한 소유자 SID가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.

[out, optional] ppsidGroup

반환된 보안 설명자의 기본 그룹 SID에 대한 포인터를 수신하는 변수에 대한 포인터이거나 보안 설명자에 그룹 SID가 없는 경우 NULL 입니다. 반환된 포인터는 GROUP_SECURITY_INFORMATION 플래그를 설정한 경우에만 유효합니다. 또한 그룹 SID가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.

[out, optional] ppDacl

반환된 보안 설명자의 DACL에 대한 포인터를 수신하는 변수에 대한 포인터이거나 보안 설명자에 DACL이 없는 경우 NULL 입니다. 반환된 포인터는 DACL_SECURITY_INFORMATION 플래그를 설정한 경우에만 유효합니다. 또한 DACL이 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.

[out, optional] ppSacl

반환된 보안 설명자의 SACL에 대한 포인터를 수신하는 변수에 대한 포인터이거나 보안 설명자에 SACL이 없는 경우 NULL 입니다. 반환된 포인터는 SACL_SECURITY_INFORMATION 플래그를 설정한 경우에만 유효합니다. 또한 SACL이 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.

[out, optional] ppSecurityDescriptor

개체의 보안 설명자에 대한 포인터를 수신하는 변수에 대한 포인터입니다. 포인터 사용을 마쳤으면 LocalFree 함수를 호출하여 반환된 버퍼를 해제합니다.

ppsidOwner, ppsidGroup, ppDacl 또는 ppSacl 매개 변수 중 하나가 NULL 아닌 경우 이 매개 변수가 필요합니다.

반환 값

함수가 성공하면 반환 값이 ERROR_SUCCESS.

함수가 실패하면 반환 값은 WinError.h에 정의된 0이 아닌 오류 코드입니다.

설명

ppsidOwner, ppsidGroup, ppDacl 또는 ppSacl 매개 변수 NULL이 아니고 SecurityInfo 매개 변수가 개체에서 검색되도록 지정하는 경우 해당 매개 변수는 ppSecurityDescriptor에 반환된 보안 설명자의 해당 매개 변수를 가리킵니다. 보안 설명자에 요청된 정보가 포함되어 있지 않으면 해당 매개 변수가 NULL로 설정됩니다.

개체의 보안 설명자에서 소유자, 그룹 또는 DACL을 읽으려면 개체의 DACL에서 호출자에게 READ_CONTROL 액세스 권한을 부여해야 합니다. 그렇지 않으면 호출자가 개체의 소유자여야 합니다.

개체의 시스템 액세스 제어 목록을 읽으려면 호출 프로세스에 대해 SE_SECURITY_NAME 권한을 사용하도록 설정해야 합니다. 권한 사용의 보안 영향에 대한 자세한 내용은 특별 권한으로 실행을 참조하세요.

다음 유형의 개체와 함께 GetNamedSecurityInfo 함수를 사용할 수 있습니다.

  • NTFS 파일 시스템의 로컬 또는 원격 파일 또는 디렉터리
  • 로컬 또는 원격 프린터
  • 로컬 또는 원격 Windows 서비스
  • 네트워크 공유
  • 레지스트리 키
  • 세마포, 이벤트, 뮤텍스 및 대기 가능한 타이머
  • 파일 매핑 개체
  • 디렉터리 서비스 개체
이 함수는 경합 상태를 처리하지 않습니다. 스레드가 다른 스레드가 개체의 보안 설명자를 변경하는 대략적인 시간에 이 함수를 호출하는 경우 이 함수가 실패할 수 있습니다.

이 함수는 일반 텍스트로 정보를 전송합니다. 이 함수에 의해 전송된 정보는 시스템에 대해 서명이 꺼져 있지만 암호화가 수행되지 않는 한 서명됩니다.

사용자 계정, 그룹 계정 또는 로그온 세션을 통해 개체에 대한 액세스를 제어하는 방법에 대한 자세한 내용은 DACLs가 개체에 대한 액세스를 제어하는 방법을 참조하세요.

예제

GetNamedSecurityInfo를 사용하는 예제는 개체의 ACL 수정을 참조하세요.

참고

aclapi.h 헤더는 GETNamedSecurityInfo를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

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

추가 정보

ACL

Access Control

기본 Access Control 함수

GetSecurityInfo

LocalFree

권한 상수

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SE_OBJECT_TYPE

SID

SetNamedSecurityInfo

SetSecurityInfo