ThreadPool.UnsafeRegisterWaitForSingleObject 메서드

정의

WaitHandle를 기다리도록 대리자를 등록하지만 호출 스택을 작업자 스레드에 전파하지 않습니다.

오버로드

UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, TimeSpan, Boolean)

제한 시간에 WaitHandle 값을 지정하여 TimeSpan을 기다리는 대리자를 등록합니다. 이 메서드는 호출 스택을 작업자 스레드에 전파하지 않습니다.

UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int32, Boolean)

제한 시간(밀리초)에 부호 있는 32비트 정수를 사용하여 WaitHandle을 기다리는 대리자를 등록합니다. 이 메서드는 호출 스택을 작업자 스레드에 전파하지 않습니다.

UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int64, Boolean)

제한 시간(밀리초)에 부호 있는 64비트 정수를 지정하여 WaitHandle을 기다리는 대리자를 등록합니다. 이 메서드는 호출 스택을 작업자 스레드에 전파하지 않습니다.

UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean)

제한 시간(밀리초)에 부호 없는 32비트 정수를 지정하여 WaitHandle을 기다리는 대리자를 등록합니다. 이 메서드는 호출 스택을 작업자 스레드에 전파하지 않습니다.

UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, TimeSpan, Boolean)

Source:
ThreadPoolWorkQueue.cs
Source:
ThreadPoolWorkQueue.cs
Source:
ThreadPoolWorkQueue.cs

제한 시간에 WaitHandle 값을 지정하여 TimeSpan을 기다리는 대리자를 등록합니다. 이 메서드는 호출 스택을 작업자 스레드에 전파하지 않습니다.

public:
 static System::Threading::RegisteredWaitHandle ^ UnsafeRegisterWaitForSingleObject(System::Threading::WaitHandle ^ waitObject, System::Threading::WaitOrTimerCallback ^ callBack, System::Object ^ state, TimeSpan timeout, bool executeOnlyOnce);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object? state, TimeSpan timeout, bool executeOnlyOnce);
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, TimeSpan timeout, bool executeOnlyOnce);
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object? state, TimeSpan timeout, bool executeOnlyOnce);
[System.Security.SecurityCritical]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, TimeSpan timeout, bool executeOnlyOnce);
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * TimeSpan * bool -> System.Threading.RegisteredWaitHandle
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * TimeSpan * bool -> System.Threading.RegisteredWaitHandle
[<System.Security.SecurityCritical>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * TimeSpan * bool -> System.Threading.RegisteredWaitHandle
Public Shared Function UnsafeRegisterWaitForSingleObject (waitObject As WaitHandle, callBack As WaitOrTimerCallback, state As Object, timeout As TimeSpan, executeOnlyOnce As Boolean) As RegisteredWaitHandle

매개 변수

waitObject
WaitHandle

등록할 WaitHandle입니다. Mutex가 아닌 WaitHandle을 사용합니다.

callBack
WaitOrTimerCallback

waitObject 매개 변수가 신호를 받으면 호출할 대리자입니다.

state
Object

대리자에 전달되는 개체입니다.

timeout
TimeSpan

TimeSpan으로 나타낸 제한 시간입니다. timeout이 0이면 해당 함수에서 개체의 상태를 테스트한 다음 즉시 반환합니다. timeout이 -1이면 해당 함수의 시간 제한 간격이 경과하지 않습니다.

executeOnlyOnce
Boolean

true는 대리자를 호출한 후 스레드가 waitObject 매개 변수를 더 이상 기다리지 않음을 나타내고 false는 대기 작업이 완료될 때마다 타이머가 다시 설정됨을 나타냅니다.

반환

등록된 대기 작업을 취소하는 데 사용할 수 있는 RegisteredWaitHandle 개체입니다.

특성

예외

timeout 매개 변수가 -1보다 작습니다.

호출자에게 필요한 권한이 없는 경우

설명

메서드와 RegisterWaitForSingleObject 달리 는 UnsafeRegisterWaitForSingleObject 호출 스택을 작업자 스레드로 전파하지 않습니다. 이렇게 하면 코드가 호출 스택을 손실하여 보안 권한을 높일 수 있습니다.

주의

를 사용하면 UnsafeRegisterWaitForSingleObject 실수로 보안 구멍이 열릴 수 있습니다. 코드 액세스 보안은 스택에 있는 모든 호출자의 권한에 대한 권한 검사를 기반으로 합니다. 를 사용하여 UnsafeRegisterWaitForSingleObject스레드 풀 스레드에서 작업을 큐에 대기하는 경우 스레드 풀 스레드의 스택에는 실제 호출자의 컨텍스트가 없습니다. 악성 코드는 권한 검사를 방지하기 위해 이를 악용할 수 있습니다.

Mutex 기본 Windows API는 기본 WT_EXECUTEDEFAULT 플래그를 사용하므로 각 콜백이 별도의 스레드 풀 스레드에 디스패치되므로 for waitObject 를 사용하면 콜백에 대한 상호 제외가 제공되지 않습니다.

이 메서드에서 반환되는 을 RegisteredWaitHandle 사용하여 완료되면 해당 메서드를 RegisteredWaitHandle.Unregister 호출하여 대기 핸들에 대한 참조를 해제합니다. 에 를 지정 true 하더라도 항상 메서드를 호출 RegisteredWaitHandle.Unregister 하는 executeOnlyOnce것이 좋습니다. 가비지 수집은 등록된 대기 핸들의 종료자에 따라 대신 메서드를 호출 RegisteredWaitHandle.Unregister 하는 경우 보다 효율적으로 작동합니다.

추가 정보

적용 대상

UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int32, Boolean)

Source:
ThreadPoolWorkQueue.cs
Source:
ThreadPoolWorkQueue.cs
Source:
ThreadPoolWorkQueue.cs

제한 시간(밀리초)에 부호 있는 32비트 정수를 사용하여 WaitHandle을 기다리는 대리자를 등록합니다. 이 메서드는 호출 스택을 작업자 스레드에 전파하지 않습니다.

public:
 static System::Threading::RegisteredWaitHandle ^ UnsafeRegisterWaitForSingleObject(System::Threading::WaitHandle ^ waitObject, System::Threading::WaitOrTimerCallback ^ callBack, System::Object ^ state, int millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object? state, int millisecondsTimeOutInterval, bool executeOnlyOnce);
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, int millisecondsTimeOutInterval, bool executeOnlyOnce);
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object? state, int millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.Security.SecurityCritical]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, int millisecondsTimeOutInterval, bool executeOnlyOnce);
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int * bool -> System.Threading.RegisteredWaitHandle
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int * bool -> System.Threading.RegisteredWaitHandle
[<System.Security.SecurityCritical>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int * bool -> System.Threading.RegisteredWaitHandle
Public Shared Function UnsafeRegisterWaitForSingleObject (waitObject As WaitHandle, callBack As WaitOrTimerCallback, state As Object, millisecondsTimeOutInterval As Integer, executeOnlyOnce As Boolean) As RegisteredWaitHandle

매개 변수

waitObject
WaitHandle

등록할 WaitHandle입니다. Mutex가 아닌 WaitHandle을 사용합니다.

callBack
WaitOrTimerCallback

waitObject 매개 변수가 신호를 받으면 호출할 대리자입니다.

state
Object

대리자에 전달되는 개체입니다.

millisecondsTimeOutInterval
Int32

제한 시간(밀리초)입니다. millisecondsTimeOutInterval 매개 변수가 0이면 해당 함수에서 개체의 상태를 테스트한 다음 즉시 반환합니다. millisecondsTimeOutInterval이 -1이면 해당 함수의 시간 제한 간격이 경과하지 않습니다.

executeOnlyOnce
Boolean

true는 대리자를 호출한 후 스레드가 waitObject 매개 변수를 더 이상 기다리지 않음을 나타내고 false는 대기 작업이 완료될 때마다 타이머가 다시 설정됨을 나타냅니다.

반환

등록된 대기 작업을 취소하는 데 사용할 수 있는 RegisteredWaitHandle 개체입니다.

특성

예외

millisecondsTimeOutInterval 매개 변수가 -1보다 작습니다.

호출자에게 필요한 권한이 없는 경우

설명

메서드와 RegisterWaitForSingleObject 달리 는 UnsafeRegisterWaitForSingleObject 호출 스택을 작업자 스레드로 전파하지 않습니다. 이렇게 하면 코드가 호출 스택을 손실하여 보안 권한을 높일 수 있습니다.

주의

를 사용하면 UnsafeRegisterWaitForSingleObject 실수로 보안 구멍이 열릴 수 있습니다. 코드 액세스 보안은 스택에 있는 모든 호출자의 권한에 대한 권한 검사를 기반으로 합니다. 를 사용하여 UnsafeRegisterWaitForSingleObject스레드 풀 스레드에서 작업을 큐에 대기하는 경우 스레드 풀 스레드의 스택에는 실제 호출자의 컨텍스트가 없습니다. 악성 코드는 권한 검사를 방지하기 위해 이를 악용할 수 있습니다.

Mutex 기본 Windows API는 기본 WT_EXECUTEDEFAULT 플래그를 사용하므로 각 콜백이 별도의 스레드 풀 스레드에 디스패치되므로 for waitObject 를 사용하면 콜백에 대한 상호 제외가 제공되지 않습니다.

이 메서드에서 반환되는 을 RegisteredWaitHandle 사용하여 완료되면 해당 메서드를 RegisteredWaitHandle.Unregister 호출하여 대기 핸들에 대한 참조를 해제합니다. 에 를 지정 true 하더라도 항상 메서드를 호출 RegisteredWaitHandle.Unregister 하는 executeOnlyOnce것이 좋습니다. 가비지 수집은 등록된 대기 핸들의 종료자에 따라 대신 메서드를 호출 RegisteredWaitHandle.Unregister 하는 경우 보다 효율적으로 작동합니다.

추가 정보

적용 대상

UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int64, Boolean)

Source:
ThreadPoolWorkQueue.cs
Source:
ThreadPoolWorkQueue.cs
Source:
ThreadPoolWorkQueue.cs

제한 시간(밀리초)에 부호 있는 64비트 정수를 지정하여 WaitHandle을 기다리는 대리자를 등록합니다. 이 메서드는 호출 스택을 작업자 스레드에 전파하지 않습니다.

public:
 static System::Threading::RegisteredWaitHandle ^ UnsafeRegisterWaitForSingleObject(System::Threading::WaitHandle ^ waitObject, System::Threading::WaitOrTimerCallback ^ callBack, System::Object ^ state, long millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object? state, long millisecondsTimeOutInterval, bool executeOnlyOnce);
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, long millisecondsTimeOutInterval, bool executeOnlyOnce);
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object? state, long millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.Security.SecurityCritical]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, long millisecondsTimeOutInterval, bool executeOnlyOnce);
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int64 * bool -> System.Threading.RegisteredWaitHandle
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int64 * bool -> System.Threading.RegisteredWaitHandle
[<System.Security.SecurityCritical>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int64 * bool -> System.Threading.RegisteredWaitHandle
Public Shared Function UnsafeRegisterWaitForSingleObject (waitObject As WaitHandle, callBack As WaitOrTimerCallback, state As Object, millisecondsTimeOutInterval As Long, executeOnlyOnce As Boolean) As RegisteredWaitHandle

매개 변수

waitObject
WaitHandle

등록할 WaitHandle입니다. Mutex가 아닌 WaitHandle을 사용합니다.

callBack
WaitOrTimerCallback

waitObject 매개 변수가 신호를 받으면 호출할 대리자입니다.

state
Object

대리자에 전달되는 개체입니다.

millisecondsTimeOutInterval
Int64

제한 시간(밀리초)입니다. millisecondsTimeOutInterval 매개 변수가 0이면 해당 함수에서 개체의 상태를 테스트한 다음 즉시 반환합니다. millisecondsTimeOutInterval이 -1이면 해당 함수의 시간 제한 간격이 경과하지 않습니다.

executeOnlyOnce
Boolean

true는 대리자를 호출한 후 스레드가 waitObject 매개 변수를 더 이상 기다리지 않음을 나타내고 false는 대기 작업이 완료될 때마다 타이머가 다시 설정됨을 나타냅니다.

반환

등록된 대기 작업을 취소하는 데 사용할 수 있는 RegisteredWaitHandle 개체입니다.

특성

예외

millisecondsTimeOutInterval 매개 변수가 -1보다 작습니다.

호출자에게 필요한 권한이 없는 경우

설명

메서드와 RegisterWaitForSingleObject 달리 는 UnsafeRegisterWaitForSingleObject 호출 스택을 작업자 스레드로 전파하지 않습니다. 이렇게 하면 코드가 호출 스택을 손실하여 보안 권한을 높일 수 있습니다.

주의

를 사용하면 UnsafeRegisterWaitForSingleObject 실수로 보안 구멍이 열릴 수 있습니다. 코드 액세스 보안은 스택에 있는 모든 호출자의 권한에 대한 권한 검사를 기반으로 합니다. 를 사용하여 UnsafeRegisterWaitForSingleObject스레드 풀 스레드에서 작업을 큐에 대기하는 경우 스레드 풀 스레드의 스택에는 실제 호출자의 컨텍스트가 없습니다. 악성 코드는 권한 검사를 방지하기 위해 이를 악용할 수 있습니다.

Mutex 기본 Windows API는 기본 WT_EXECUTEDEFAULT 플래그를 사용하므로 각 콜백이 별도의 스레드 풀 스레드에 디스패치되므로 for waitObject 를 사용하면 콜백에 대한 상호 제외가 제공되지 않습니다.

이 메서드에서 반환되는 을 RegisteredWaitHandle 사용하여 완료되면 해당 메서드를 RegisteredWaitHandle.Unregister 호출하여 대기 핸들에 대한 참조를 해제합니다. 에 를 지정 true 하더라도 항상 메서드를 호출 RegisteredWaitHandle.Unregister 하는 executeOnlyOnce것이 좋습니다. 가비지 수집은 등록된 대기 핸들의 종료자에 따라 대신 메서드를 호출 RegisteredWaitHandle.Unregister 하는 경우 보다 효율적으로 작동합니다.

추가 정보

적용 대상

UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean)

Source:
ThreadPoolWorkQueue.cs
Source:
ThreadPoolWorkQueue.cs
Source:
ThreadPoolWorkQueue.cs

중요

이 API는 CLS 규격이 아닙니다.

제한 시간(밀리초)에 부호 없는 32비트 정수를 지정하여 WaitHandle을 기다리는 대리자를 등록합니다. 이 메서드는 호출 스택을 작업자 스레드에 전파하지 않습니다.

public:
 static System::Threading::RegisteredWaitHandle ^ UnsafeRegisterWaitForSingleObject(System::Threading::WaitHandle ^ waitObject, System::Threading::WaitOrTimerCallback ^ callBack, System::Object ^ state, System::UInt32 millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object? state, uint millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.CLSCompliant(false)]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.CLSCompliant(false)]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object? state, uint millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * uint32 * bool -> System.Threading.RegisteredWaitHandle
[<System.CLSCompliant(false)>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * uint32 * bool -> System.Threading.RegisteredWaitHandle
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * uint32 * bool -> System.Threading.RegisteredWaitHandle
Public Shared Function UnsafeRegisterWaitForSingleObject (waitObject As WaitHandle, callBack As WaitOrTimerCallback, state As Object, millisecondsTimeOutInterval As UInteger, executeOnlyOnce As Boolean) As RegisteredWaitHandle

매개 변수

waitObject
WaitHandle

등록할 WaitHandle입니다. Mutex가 아닌 WaitHandle을 사용합니다.

callBack
WaitOrTimerCallback

waitObject 매개 변수가 신호를 받으면 호출할 대리자입니다.

state
Object

대리자에 전달되는 개체입니다.

millisecondsTimeOutInterval
UInt32

제한 시간(밀리초)입니다. millisecondsTimeOutInterval 매개 변수가 0이면 해당 함수에서 개체의 상태를 테스트한 다음 즉시 반환합니다. millisecondsTimeOutInterval이 -1이면 해당 함수의 시간 제한 간격이 경과하지 않습니다.

executeOnlyOnce
Boolean

true는 대리자를 호출한 후 스레드가 waitObject 매개 변수를 더 이상 기다리지 않음을 나타내고 false는 대기 작업이 완료될 때마다 타이머가 다시 설정됨을 나타냅니다.

반환

등록된 대기 작업을 취소하는 데 사용할 수 있는 RegisteredWaitHandle 개체입니다.

특성

예외

호출자에게 필요한 권한이 없는 경우

설명

메서드와 RegisterWaitForSingleObject 달리 는 UnsafeRegisterWaitForSingleObject 호출 스택을 작업자 스레드로 전파하지 않습니다. 이렇게 하면 코드가 호출 스택을 손실하여 보안 권한을 높일 수 있습니다.

주의

를 사용하면 UnsafeRegisterWaitForSingleObject 실수로 보안 구멍이 열릴 수 있습니다. 코드 액세스 보안은 스택에 있는 모든 호출자의 권한에 대한 권한 검사를 기반으로 합니다. 를 사용하여 UnsafeRegisterWaitForSingleObject스레드 풀 스레드에서 작업이 큐에 대기되는 경우 스레드 풀 스레드의 스택에는 실제 호출자의 컨텍스트가 없습니다. 악성 코드는 권한 검사를 방지하기 위해 이를 악용할 수 있습니다.

Mutex 기본 Windows API에서 기본 WT_EXECUTEDEFAULT 플래그를 사용하므로 각 콜백이 별도의 스레드 풀 스레드에서 디스패치되므로 에 를 waitObject 사용하면 콜백에 대한 상호 제외가 제공되지 않습니다.

이 메서드에서 반환된 를 RegisteredWaitHandle 사용하여 완료되면 해당 메서드를 RegisteredWaitHandle.Unregister 호출하여 대기 핸들에 대한 참조를 해제합니다. 에 를 지정 true 하더라도 항상 메서드를 RegisteredWaitHandle.Unregister 호출하는 executeOnlyOnce것이 좋습니다. 가비지 수집은 등록된 대기 핸들의 종료자에 따라 메서드를 호출 RegisteredWaitHandle.Unregister 하는 대신 더 효율적으로 작동합니다.

추가 정보

적용 대상