다음을 통해 공유


CreatePrivateObjectSecurity 함수(securitybaseapi.h)

CreatePrivateObjectSecurity 함수는 새 프라이빗 개체에 대한 자체 상대 보안 설명자를 할당하고 초기화합니다. 보호된 서버는 새 프라이빗 개체를 만들 때 이 함수를 호출합니다.

새 개체의 개체 형식 GUID를 지정하거나 ACE( 액세스 제어 항목 )를 상속하는 방법을 제어하려면 CreatePrivateObjectSecurityEx 함수를 사용합니다.

구문

BOOL CreatePrivateObjectSecurity(
  [in, optional] PSECURITY_DESCRIPTOR ParentDescriptor,
  [in, optional] PSECURITY_DESCRIPTOR CreatorDescriptor,
  [out]          PSECURITY_DESCRIPTOR *NewDescriptor,
  [in]           BOOL                 IsDirectoryObject,
  [in, optional] HANDLE               Token,
  [in]           PGENERIC_MAPPING     GenericMapping
);

매개 변수

[in, optional] ParentDescriptor

새 개체가 만들어지는 부모 디렉터리에 대한 보안 설명자에 대한 포인터입니다. 부모 디렉터리가 없는 경우 이 매개 변수는 NULL일 수 있습니다.

[in, optional] CreatorDescriptor

개체의 작성자가 제공하는 보안 설명자에 대한 포인터입니다. 개체의 작성자가 새 개체에 대한 보안 정보를 명시적으로 전달하지 않으면 이 매개 변수는 NULL이 됩니다.

[out] NewDescriptor

새로 할당된 자체 상대 보안 설명자에 대한 포인터를 수신하는 변수에 대한 포인터입니다. 호출자는 DestroyPrivateObjectSecurity 함수를 호출하여 이 보안 설명자를 해제해야 합니다.

[in] IsDirectoryObject

새 개체가 컨테이너인지 여부를 지정합니다. TRUE 값은 개체에 디렉터리 같은 다른 개체가 포함되어 있음을 나타냅니다.

[in, optional] Token

개체를 대신하여 생성되는 클라이언트 프로세스에 대한 액세스 토큰에 대한 핸들입니다. 가장 토큰인 경우 SecurityIdentification 수준 이상이어야 합니다. SecurityIdentification 가장 수준에 대한 전체 설명은 SECURITY_IMPERSONATION_LEVEL 열거형 형식을 참조하세요.

클라이언트 토큰은 기본 소유자, 기본 그룹 및 임의 액세스 제어 목록과 같은 새 개체에 대한 기본 보안 정보를 검색하는 데 사용됩니다. 토큰은 TOKEN_QUERY 액세스를 위해 열려 있어야 합니다.

다음 조건이 모두 true인 경우 TOKEN_QUERY 액세스 외에도 TOKEN_DUPLICATE 액세스를 위해 핸들을 열어 야 합니다.

  • 토큰 핸들은 기본 토큰을 참조합니다.
  • 토큰의 보안 설명자에는 OwnerRights SID를 사용하는 하나 이상의 AES가 포함되어 있습니다.
  • CreatorDescriptor 매개 변수에 대한 보안 설명자가 지정됩니다.
  • 이 함수의 호출자는 AutoInheritFlags 매개 변수에서 SEF_AVOID_OWNER_RESTRICTION 플래그를 설정하지 않습니다.

[in] GenericMapping

개체에 대한 특정 권한에 대한 각 제네릭 권한의 매핑을 지정하는 GENERIC_MAPPING 구조체에 대한 포인터입니다.

반환 값

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

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

설명

CreatorDescriptor 매개 변수로 지정된 SECURITY_DESCRIPTOR SACL(시스템 액세스 제어 목록)을 지정하는 경우 토큰 매개 변수에 SE_SECURITY_NAME 권한이 활성화되어 있어야 합니다. CreatePrivateObjectSecurity 함수는 이 권한을 확인하고 프로세스 중에 감사를 생성할 수 있습니다.

요구 사항

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

추가 정보

클라이언트/서버 Access Control 함수

클라이언트/서버 Access Control 개요

CreatePrivateObjectSecurityEx

DestroyPrivateObjectSecurity

GENERIC_MAPPING

GetPrivateObjectSecurity

GetTokenInformation

OpenProcessToken

SECURITY_DESCRIPTOR

SECURITY_IMPERSONATION_LEVEL

SetPrivateObjectSecurity