TreeResetNamedSecurityInfoA 함수(aclapi.h)

이 함수 버전은 지원되지 않습니다. 이 함수의 와이드 문자 버전인 TreeResetNamedSecurityInfoW가 지원됩니다.

구문

DWORD TreeResetNamedSecurityInfoA(
  [in]           LPSTR                pObjectName,
  [in]           SE_OBJECT_TYPE       ObjectType,
  [in]           SECURITY_INFORMATION SecurityInfo,
  [in, optional] PSID                 pOwner,
  [in, optional] PSID                 pGroup,
  [in, optional] PACL                 pDacl,
  [in, optional] PACL                 pSacl,
  [in]           BOOL                 KeepExplicit,
  [in, optional] FN_PROGRESS          fnProgress,
  [in]           PROG_INVOKE_SETTING  ProgressInvokeSetting,
  [in, optional] PVOID                Args
);

매개 변수

[in] pObjectName

업데이트된 보안 정보를 받을 개체의 루트 노드 개체 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 지원되는 개체는 레지스트리 키 및 파일 개체입니다. 다양한 개체 형식에 대한 문자열 형식에 대한 설명은 SE_OBJECT_TYPE 참조하세요.

[in] ObjectType

pObjectName 매개 변수로 명명된 개체의 형식을 나타내는 SE_OBJECT_TYPE 열거형의 값입니다. 지원되는 값은 각각 레지스트리 키 및 파일 개체에 대해 SE_REGISTRY_KEY 및 SE_FILE_OBJECT.

[in] SecurityInfo

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

[in, optional] pOwner

개체의 소유자를 식별하는 SID 구조체에 대한 포인터입니다. SID는 보안 설명자의 소유자 SID로 할당할 수 있는 SID여야 합니다. SecurityInfo 매개 변수에는 OWNER_SECURITY_INFORMATION 플래그가 포함되어야 합니다. 소유자를 설정하려면 호출자가 루트 개체를 포함하여 각 개체에 대한 WRITE_OWNER 액세스 권한이 있어야 합니다. 소유자 SID를 설정하지 않는 경우 이 매개 변수는 NULL일 수 있습니다.

[in, optional] pGroup

개체의 기본 그룹을 식별하는 SID 구조체에 대한 포인터입니다. SecurityInfo 매개 변수에는 GROUP_SECURITY_INFORMATION 플래그가 포함되어야 합니다. 그룹을 설정하려면 호출자가 루트 개체를 포함하여 각 개체에 대한 WRITE_OWNER 액세스 권한이 있어야 합니다. 기본 그룹 SID를 설정하지 않는 경우 이 매개 변수는 NULL일 수 있습니다.

[in, optional] pDacl

재설정되는 개체에 대한 새 DACL을 나타내는 ACL( 액세스 제어 목록 ) 구조체에 대한 포인터입니다. SecurityInfo 매개 변수에는 DACL_SECURITY_INFORMATION 플래그가 포함되어야 합니다. 호출자는 루트 개체를 포함하여 각 개체에 대한 READ_CONTROL 및 WRITE_DAC 액세스 권한이 있어야 합니다. DACL을 설정하지 않는 경우 이 매개 변수는 NULL일 수 있습니다.

[in, optional] pSacl

재설정되는 개체에 대한 새 SACL을 나타내는 ACL 구조체에 대한 포인터입니다. SecurityInfo 매개 변수에는 SACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, ATTRIBUTE_SECURITY_INFORMATION, SCOPE_SECURITY_INFORMATION 또는 BACKUP_SECURITY_INFORMATION 플래그가 포함되어야 합니다. SACL_SECURITY_INFORMATION 또는 SCOPE_SECURITY_INFORMATION 설정하는 경우 호출자는 SE_SECURITY_NAME 권한을 사용하도록 설정해야 합니다. SACL을 설정하지 않는 경우 이 매개 변수는 NULL일 수 있습니다.

[in] KeepExplicit

하위 트리에 대해 명시적으로 정의된 AES를 유지하거나 삭제할지 여부를 정의하는 부울 값입니다. KeepExplicitTRUE이면 각 하위 트리 DACL 및 SACL에 대해 명시적으로 정의된 ACE가 유지되고 상속된 API는 pDacl 및 pSacl에서 상속된 API로 대체됩니다. KeepExplicitFALSE이면 상속된 API가 pDaclpSacl에서 상속된 API로 대체되기 전에 각 하위 트리 DACL 및 SACL에 대해 명시적으로 정의된 ACE가 삭제됩니다.

[in, optional] fnProgress

TreeResetNamedSecurityInfo 함수의 진행률을 추적하는 데 사용되는 함수에 대한 포인터입니다. 진행률 함수의 프로토타입은 다음과 같습니다.

#include <windows.h>
#include <Aclapi.h>

typedef VOID (*FN_PROGRESS) (
  IN LPWSTR pObjectName,              // Name of object just processed
  IN DWORD Status,                    // Status of operation on object
  IN OUT PPROG_INVOKE_SETTING pInvokeSetting, // When to set
  IN PVOID Args,                      // Caller specific data
  IN BOOL SecuritySet                 // Whether security was set
);

진행률 함수는 노드가 처리될 때 호출자에게 진행률 및 오류 정보를 제공합니다. 호출자는 fnProgress에서 진행률 함수를 지정하고 트리 작업 중에 TreeResetNamedSecurityInfo는 처리된 마지막 개체의 이름, 해당 작업의 오류 상태 및 현재 PROG_INVOKE_SETTING 값을 전달합니다. 호출자는 pInvokeSetting을 사용하여 PROG_INVOKE_SETTING 값을 변경할 수 있습니다.

사용할 진행률 함수가 없으면 이 매개 변수를 NULL로 설정합니다.

[in] ProgressInvokeSetting

진행률 함수의 초기 설정을 지정하는 PROG_INVOKE_SETTING 열거형의 값입니다.

[in, optional] Args

호출자가 지정한 진행률 함수 인수에 대한 VOID 에 대한 포인터입니다.

반환 값

함수가 성공하면 함수는 ERROR_SUCCESS 반환합니다.

함수가 실패하면 WinError.h에 정의된 오류 코드를 반환합니다.

설명

NULL 소유자, 그룹, DACL 또는 SACL 설정은 이 함수에서 지원되지 않습니다.

호출자에게 요청된 소유자, 그룹, DACL 및 SACL 업데이트를 지원하기 위한 적절한 권한과 권한이 포함되어 있지 않으면 업데이트가 수행되지 않습니다.

이 함수는 TreeSetNamedSecurityInfo 함수와 유사합니다.

  • TreeResetNamedSecurityInfoKeepExplicit 매개 변수가 TRUE로 설정된 경우 함수는 dwAction 매개 변수가 TREE_SEC_INFO_RESET_KEEP_EXPLICIT 설정된 TreeSetNamedSecurityInfo와 동일합니다.
  • TreeResetNamedSecurityInfoKeepExplicit 매개 변수가 FALSE로 설정된 경우 함수는 dwAction 매개 변수가 TREE_SEC_INFO_RESET 설정된 TreeSetNamedSecurityInfo와 동일합니다.

참고

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

요구 사항

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