다음을 통해 공유


EventWaitHandleAcl.Create 메서드

정의

EventWaitHandle 인스턴스를 가져오거나 만들어 이벤트 생성 중에 EventWaitHandleSecurity 인스턴스를 선택적으로 지정할 수 있게 합니다.

public:
 static System::Threading::EventWaitHandle ^ Create(bool initialState, System::Threading::EventResetMode mode, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::EventWaitHandleSecurity ^ eventSecurity);
public static System.Threading.EventWaitHandle Create (bool initialState, System.Threading.EventResetMode mode, string? name, out bool createdNew, System.Security.AccessControl.EventWaitHandleSecurity? eventSecurity);
static member Create : bool * System.Threading.EventResetMode * string * bool * System.Security.AccessControl.EventWaitHandleSecurity -> System.Threading.EventWaitHandle
Public Shared Function Create (initialState As Boolean, mode As EventResetMode, name As String, ByRef createdNew As Boolean, eventSecurity As EventWaitHandleSecurity) As EventWaitHandle

매개 변수

initialState
Boolean

명명된 이벤트가 이 호출의 결과로 만들어지는 경우 초기 상태를 signaled로 설정하려면 true이고, nonsignaled로 설정하려면 false입니다.

mode
EventResetMode

이벤트가 자동으로 다시 설정되는지 또는 수동으로 다시 설정되는지를 결정하는 열거형 값 중 하나입니다.

name
String

동기화 개체를 다른 프로세스와 공유할 예정이면 이름이고, 그렇지 않으면 null 또는 빈 문자열입니다. 이름은 대/소문자를 구분합니다. 백슬래시 문자(\)는 예약되어 있으며 네임스페이스를 지정하는 데만 사용할 수 있습니다. 네임스페이스에 대한 자세한 내용은 설명 섹션을 참조하세요. 운영 체제에 따라 이름에 대한 추가 제한이 있을 수 있습니다. 예를 들어 Unix 기반 운영 체제에서 네임스페이스를 제외한 후의 이름은 유효한 파일 이름이어야 합니다.

createdNew
Boolean

이 메서드가 반환될 때 로컬 이벤트가 만들어진 경우, 다시 말해서 namenull 또는 Empty인 경우 이 인수는 항상 true로 설정됩니다. name에 비어 있지 않은 유효한 값이 있는 경우 이 인수는 시스템 이벤트가 만들어질 때 true로 설정되고, 해당 이름의 기존 시스템 이벤트가 있는 경우 false로 설정됩니다.

eventSecurity
EventWaitHandleSecurity

적용할 선택적인 Windows 액세스 제어 보안입니다.

반환

요청된 이벤트 대기 핸들을 나타내는 개체입니다.

예외

mode 열거형 값이 올바른 범위를 벗어납니다.

-또는-

.NET Framework에만 해당: name이 MAX_PATH(260자)보다 깁니다.

mode 열거형 값이 올바른 범위를 벗어납니다. 간혹 ArgumentException이 대신 throw되기도 합니다.

name이 잘못되었습니다. 이유는 다양하며, 대표적인 이유는 운영 체제가 적용하는 일부 제한(예: 알 수 없는 접두사나 잘못된 문자)입니다. 이름 및 일반 접두사 "Global\" 및 "Local\"은 대/소문자를 구분합니다.

-또는-

다른 오류가 발생했습니다. HResult 속성에서 자세한 정보를 확인할 수 있습니다.

Windows에만 해당: name이 알 수 없는 네임스페이스를 지정했습니다. 자세한 내용은 개체 이름을 참조하세요.

name이 너무 깁니다. 길이 제한은 운영 체제나 구성에 따라 달라집니다.

이름이 name인 동기화 개체를 만들 수 없습니다. 다른 형식의 동기화 개체에 동일한 이름이 사용되었을 수 있습니다.

명명된 이벤트가 존재하지만 사용자에게 필요한 보안 액세스 권한이 없는 경우

.NET Framework에만 해당: name 길이가 MAX_PATH(260자)를 초과합니다.

설명

name 접두사를 추가 Global\ 하거나 Local\ 네임스페이스를 지정할 수 있습니다. 네임스페이 Global 스를 지정하면 동기화 개체를 시스템의 모든 프로세스와 공유할 수 있습니다. Local 네임스페이스를 지정하면 네임스페이스가 지정되지 않은 경우에도 기본값으로 동기화 개체를 동일한 세션의 프로세스와 공유할 수 있습니다. Windows에서 세션은 로그인 세션이며 서비스는 일반적으로 다른 비대화형 세션에서 실행됩니다. Unix와 유사한 운영 체제에서 각 셸에는 자체 세션이 있습니다. 세션 로컬 동기화 개체는 모두 동일한 세션에서 실행되는 부모/자식 관계와 프로세스 간의 동기화에 적합할 수 있습니다. Windows의 동기화 개체 이름에 대한 자세한 내용은 개체 이름을 참조하세요.

name 제공되고 요청된 형식의 동기화 개체가 네임스페이스에 이미 있는 경우 기존 동기화 개체가 열립니다. 다른 형식의 동기화 개체가 네임스페이스에 WaitHandleCannotBeOpenedException 이미 있는 경우 이 throw됩니다. 그렇지 않으면 새 동기화 개체가 만들어집니다.

주의

기본적으로 명명된 이벤트는 이벤트를 만든 사용자로 제한되지 않습니다. 다른 사용자는 이벤트를 설정하거나 부적절하게 다시 설정하여 이벤트를 방해하는 등 이벤트를 열고 사용할 수 있습니다. 특정 사용자에 대한 액세스를 제한하려면 명명된 이벤트를 만들 때 를 EventWaitHandleSecurity 전달할 수 있습니다. 신뢰할 수 없는 사용자가 코드를 실행 중일 수 있는 시스템에 대한 액세스 제한 없이 명명된 이벤트를 사용하지 마세요.

적용 대상