CreateWaitableTimerExW 함수(synchapi.h)

대기 가능한 타이머 개체를 만들거나 열고 개체에 대한 핸들을 반환합니다.

구문

HANDLE CreateWaitableTimerExW(
  [in, optional] LPSECURITY_ATTRIBUTES lpTimerAttributes,
  [in, optional] LPCWSTR               lpTimerName,
  [in]           DWORD                 dwFlags,
  [in]           DWORD                 dwDesiredAccess
);

매개 변수

[in, optional] lpTimerAttributes

SECURITY_ATTRIBUTES 구조체에 대한 포인터입니다. 이 매개 변수가 NULL인 경우 타이머 핸들은 자식 프로세스에서 상속할 수 없습니다.

lpTimerAttributesNULL인 경우 타이머 개체는 기본 보안 설명자를 가져오고 핸들을 상속할 수 없습니다. 타이머에 대한 기본 보안 설명자의 ACL은 작성자의 기본 또는 가장 토큰에서 가져옵니다.

[in, optional] lpTimerName

타이머 개체의 이름입니다. 이름은 MAX_PATH 문자로 제한됩니다. 이름 비교는 대/소문자를 구분합니다.

lpTimerNameNULL인 경우 타이머 개체는 이름 없이 만들어집니다.

lpTimerName이 기존 이벤트, 세마포, 뮤텍스, 작업 또는 파일 매핑 개체의 이름과 일치하면 함수가 실패하고 GetLastErrorERROR_INVALID_HANDLE 반환합니다. 이러한 개체는 동일한 네임스페이스를 공유하기 때문에 발생합니다.

이름에는 전역 또는 세션 네임스페이스에 개체를 명시적으로 만드는 "전역" 또는 "로컬" 접두사를 사용할 수 있습니다. 이름의 나머지 부분에는 백슬래시 문자(\)를 제외한 모든 문자가 포함될 수 있습니다. 자세한 내용은 커널 개체 네임스페이스를 참조하세요. 빠른 사용자 전환은 터미널 서비스 세션을 사용하여 구현됩니다. 커널 개체 이름은 애플리케이션이 여러 사용자를 지원할 수 있도록 터미널 서비스에 대해 설명된 지침을 따라야 합니다.

개체는 프라이빗 네임스페이스에서 만들 수 있습니다. 자세한 내용은 개체 네임스페이스를 참조하세요.

[in] dwFlags

이 매개 변수는 0 또는 다음 값일 수 있습니다.

의미
CREATE_WAITABLE_TIMER_MANUAL_RESET
0x00000001
타이머는 수동으로 다시 설정해야 합니다. 그렇지 않으면 시스템은 단일 대기 스레드를 해제한 후 타이머를 자동으로 다시 설정합니다.
CREATE_WAITABLE_TIMER_HIGH_RESOLUTION
0x00000002
고해상도 타이머를 만듭니다. 몇 밀리초의 짧은 만료 지연이 허용되지 않는 경우 시간이 중요한 상황에 이 값을 사용합니다. 이 값은 Windows 10 버전 1803 이상에서 지원됩니다.

[in] dwDesiredAccess

타이머 개체의 액세스 마스크입니다. 액세스 권한 목록은 동기화 개체 보안 및 액세스 권한을 참조하세요.

반환 값

함수가 성공하면 반환 값은 타이머 개체에 대한 핸들입니다. 함수 호출 전에 명명된 타이머 개체가 있는 경우 함수는 기존 개체에 대한 핸들을 반환하고 GetLastErrorERROR_ALREADY_EXISTS 반환합니다.

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

설명

호출 프로세스의 모든 스레드는 대기 함수 중 하나에 대한 호출에서 타이머 개체 핸들을 지정할 수 있습니다.

여러 프로세스에는 동일한 타이머 개체에 대한 핸들이 있을 수 있으므로 프로세스 간 동기화에 개체를 사용할 수 있습니다.

  • CreateProcess 함수에서 만든 프로세스는 CreateWaitableTimerExlpTimerAttributes 매개 변수가 상속을 사용하도록 설정하는 경우 타이머 개체에 대한 핸들을 상속할 수 있습니다.
  • 프로세스는 DuplicateHandle 함수 호출에서 타이머 개체 핸들을 지정할 수 있습니다. 결과 핸들은 다른 프로세스에서 사용할 수 있습니다.
  • 프로세스는 OpenWaitableTimer 또는 CreateWaitableTimerEx 함수에 대한 호출에서 타이머 개체의 이름을 지정할 수 있습니다 .

CloseHandle 함수를 사용하여 핸들을 닫습니다. 시스템은 프로세스가 종료되면 핸들을 자동으로 닫습니다. 타이머 개체는 마지막 핸들이 닫혔을 때 제거됩니다.

타이머를 창과 연결하려면 SetTimer 함수를 사용합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 synchapi.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

CloseHandle

동기화 함수

대기 가능한 타이머 개체