다음을 통해 공유


ObjectOpenAuditAlarmA 함수(winbase.h)

ObjectOpenAuditAlarm 함수는 클라이언트 애플리케이션이 개체에 대한 액세스 권한을 얻거나 새 개체를 만들려고 할 때 감사 메시지를 생성합니다. 알람은 현재 지원되지 않습니다.

구문

BOOL ObjectOpenAuditAlarmA(
  [in]           LPCSTR               SubsystemName,
  [in]           LPVOID               HandleId,
  [in]           LPSTR                ObjectTypeName,
  [in, optional] LPSTR                ObjectName,
  [in]           PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [in]           HANDLE               ClientToken,
  [in]           DWORD                DesiredAccess,
  [in]           DWORD                GrantedAccess,
  [in, optional] PPRIVILEGE_SET       Privileges,
  [in]           BOOL                 ObjectCreation,
  [in]           BOOL                 AccessGranted,
  [out]          LPBOOL               GenerateOnClose
);

매개 변수

[in] SubsystemName

함수를 호출하는 하위 시스템의 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 이 문자열은 함수가 생성하는 감사 메시지에 표시됩니다.

[in] HandleId

개체에 대한 클라이언트의 핸들을 나타내는 고유 값에 대한 포인터입니다. 액세스가 거부되면 이 매개 변수는 무시됩니다.

플랫폼 간 호환성을 위해 이 포인터에서 주소가 지정된 값은 sizeof(LPVOID) 바이트 길이여야 합니다.

[in] ObjectTypeName

클라이언트가 액세스를 요청하는 개체의 형식을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 이 문자열은 함수가 생성하는 감사 메시지에 표시됩니다.

[in, optional] ObjectName

클라이언트가 액세스를 요청하는 개체의 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 이 문자열은 함수가 생성하는 감사 메시지에 표시됩니다.

[in] pSecurityDescriptor

액세스하는 개체의 SECURITY_DESCRIPTOR 구조체에 대한 포인터입니다.

[in] ClientToken

작업을 요청하는 클라이언트를 나타내는 액세스 토큰 을 식별합니다. 이 핸들은 클라이언트를 가장하는 스레드의 토큰을 열어 가져와야 합니다. TOKEN_QUERY 액세스를 위해 토큰을 열어야 합니다.

[in] DesiredAccess

원하는 액세스 마스크를 지정합니다. 이 마스크는 제네릭 액세스 권한이 없도록 MapGenericMask 함수에 의해 이전에 매핑되어 있어야 합니다.

[in] GrantedAccess

부여된 액세스 권한을 나타내는 액세스 마스크 를 지정합니다. 이 액세스 마스크는 GrantedAccess 매개 변수의 액세스 검사 함수 중 하나에서 설정한 값과 동일합니다. 액세스 검사 함수의 예로는 AccessCheckAndAuditAlarmAccessCheck가 있습니다.

[in, optional] Privileges

액세스 시도에 필요한 권한 집합을 지정하는 PRIVILEGE_SET 구조체에 대한 포인터입니다. 이 매개 변수는 NULL일 수 있습니다.

[in] ObjectCreation

액세스 권한이 부여될 때 애플리케이션이 새 개체를 만드는지 여부를 결정하는 플래그를 지정합니다. 이 값이 TRUE이면 애플리케이션에서 새 개체를 만듭니다. FALSE이면 애플리케이션에서 기존 개체를 엽니다.

[in] AccessGranted

AccessCheck와 같은 액세스 검사 함수에 대한 이전 호출에서 액세스 권한이 부여되었는지 또는 거부되었는지 여부를 나타내는 플래그를 지정합니다. 액세스 권한이 부여된 경우 이 값은 TRUE입니다. 그렇지 않은 경우 FALSE입니다.

[out] GenerateOnClose

함수가 반환되는 경우 감사 생성 루틴에서 설정한 플래그에 대한 포인터입니다. 개체 핸들이 닫혀 있으면 이 값을 ObjectCloseAuditAlarm 함수에 전달해야 합니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

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

설명

ObjectOpenAuditAlarm 함수를 사용하려면 호출 애플리케이션이 SE_AUDIT_NAME 권한을 사용하도록 설정해야 합니다. 이 권한에 대한 테스트는 스레드의 가장 토큰이 아니라 호출 프로세스기본토큰에 대해 항상 수행됩니다. 이렇게 하면 호출 프로세스에서 호출 중에 클라이언트를 가장할 수 있습니다.

요구 사항

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

추가 정보

AccessCheck

AccessCheckAndAuditAlarm

AreAllAccessesGranted

AreAnyAccessesGranted

클라이언트/서버 Access Control

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

MapGenericMask

ObjectCloseAuditAlarm

ObjectDeleteAuditAlarm

ObjectPrivilegeAuditAlarm

PRIVILEGE_SET

PrivilegeCheck

PrivilegedServiceAuditAlarm

SECURITY_DESCRIPTOR