Windows 보안 모델을 사용하면 이벤트, 뮤텍스, 세마포 및 대기 가능한 타이머 개체에 대한 액세스를 제어할 수 있습니다. 타이머 큐, 연동 변수 및 중요한 섹션 개체는 보안이 유지되지 않습니다. 자세한 내용은 Access-Control 모델참조하세요.
CreateEvent, CreateMutex, CreateSemaphore또는 CreateWaitableTimer함수를프로세스 간 동기화 개체에 대한 보안 설명자 지정할 수 있습니다. NULL지정하면 개체가 기본 보안 설명자를 가져옵니다. 동기화 개체에 대한 기본 보안 설명자의 ACL(Access-Control 목록) 작성자의 기본 또는 가장 토큰에서 가져옵니다.
이벤트, 뮤텍스, 세마포 또는 대기 가능한 타이머 개체의 보안 설명자를 얻거나 설정하려면 GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo또는 setSecurityInfo함수를호출합니다.
CreateEvent반환된 핸들, CreateMutex, CreateSemaphore및 CreateWaitableTimer 새 개체에 대한 모든 권한이 있습니다. OpenEvent, OpenMutex, OpenSemaphore및 openWaitableTimer 함수를 호출할 때 시스템은 요청된 액세스 권한을 개체의 보안 설명자에 대해 확인합니다.
프로세스 간 동기화 개체에 대한 유효한 액세스 권한에는 표준 액세스 권한 및 일부 개체별 액세스 권한이 포함됩니다. 다음 표에서는 모든 개체에서 사용하는 표준 액세스 권한을 나열합니다.
| 값 | 의미 |
|---|---|
| DELETE(0x00010000L) | 개체를 삭제하는 데 필요합니다. |
| READ_CONTROL(0x00020000L) | SACL의 정보를 포함하지 않고 개체의 보안 설명자에서 정보를 읽는 데 필요합니다. SACL을 읽거나 쓰려면 ACCESS_SYSTEM_SECURITY 액세스 권한을 요청해야 합니다. 자세한 내용은 SACL 액세스 권한참조하세요. |
| SYNCHRONIZE(0x00100000L) | 동기화에 개체를 사용할 수 있는 권한입니다. 이렇게 하면 개체가 신호 상태가 될 때까지 스레드가 대기할 수 있습니다. |
| WRITE_DAC(0x00040000L) | 개체의 보안 설명자에서 DACL을 수정하는 데 필요합니다. |
| WRITE_OWNER(0x00080000L) | 개체의 보안 설명자에서 소유자를 변경해야 합니다. |
다음 표에서는 이벤트 개체에 대한 개체별 액세스 권한을 나열합니다. 이러한 권한은 표준 액세스 권한 외에도 지원됩니다.
| 값 | 의미 |
|---|---|
| EVENT_ALL_ACCESS(0x1F0003) | 이벤트 개체에 대해 가능한 모든 액세스 권한입니다. 애플리케이션이 표준 액세스 권한 및 EVENT_MODIFY_STATE부여한 액세스 이상의 액세스가 필요한 경우에만 이 권한을 사용합니다. 이 액세스 권한을 사용하면 관리자가 애플리케이션을 실행해야 할 가능성이 높아질 수 있습니다. |
| EVENT_MODIFY_STATE(0x0002) | SetEvent, ResetEvent 및 PulseEvent 함수에 필요한 상태 액세스를 수정합니다. |
다음 표에서는 뮤텍스 개체에 대한 개체별 액세스 권한을 나열합니다. 이러한 권한은 표준 액세스 권한 외에도 지원됩니다.
| 값 | 의미 |
|---|---|
| MUTEX_ALL_ACCESS(0x1F0001) | 뮤텍스 개체에 대해 가능한 모든 액세스 권한입니다. 이 권한은 애플리케이션이 표준 액세스 권한에서 부여한 액세스 권한 이상으로 액세스해야 하는 경우에만 사용합니다. 이 액세스 권한을 사용하면 관리자가 애플리케이션을 실행해야 할 가능성이 높아질 수 있습니다. |
| MUTEX_MODIFY_STATE(0x0001) | 나중에 사용할 수 있습니다. |
다음 표에서는 세마포 개체에 대한 개체별 액세스 권한을 나열합니다. 이러한 권한은 표준 액세스 권한 외에도 지원됩니다.
| 값 | 의미 |
|---|---|
| SEMAPHORE_ALL_ACCESS(0x1F0003) | 세마포 개체에 대해 가능한 모든 액세스 권한입니다. 애플리케이션이 표준 액세스 권한 및 SEMAPHORE_MODIFY_STATE부여한 액세스 이상의 액세스가 필요한 경우에만 이 권한을 사용합니다. 이 액세스 권한을 사용하면 관리자가 애플리케이션을 실행해야 할 가능성이 높아질 수 있습니다. |
| SEMAPHORE_MODIFY_STATE(0x0002) | ReleaseSemaphore 함수에 필요한 상태 액세스를 수정합니다. |
다음 표에서는 대기 가능한 타이머 개체에 대한 개체별 액세스 권한을 나열합니다. 이러한 권한은 표준 액세스 권한 외에도 지원됩니다.
| 값 | 의미 |
|---|---|
| TIMER_ALL_ACCESS(0x1F0003) | 대기 가능한 타이머 개체에 대해 가능한 모든 액세스 권한입니다. 애플리케이션이 표준 액세스 권한 및 TIMER_MODIFY_STATE부여한 액세스 이상의 액세스가 필요한 경우에만 이 권한을 사용합니다. 이 액세스 권한을 사용하면 관리자가 애플리케이션을 실행해야 할 가능성이 높아질 수 있습니다. |
| TIMER_MODIFY_STATE(0x0002) | SetWaitableTimer 및 cancelWaitableTimer함수를데 필요한 상태 액세스를 수정합니다. |
| TIMER_QUERY_STATE(0x0001) | 나중에 사용할 수 있습니다. |
프로세스 간 동기화 개체의 SACL을 읽거나 쓰려면 ACCESS_SYSTEM_SECURITY 액세스 권한을 요청해야 합니다. 자세한 내용은 ACL(Access-Control 목록) 및 SACL 액세스 권한 참조하세요.