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인 경우 타이머 핸들은 자식 프로세스에서 상속할 수 없습니다.
lpTimerAttributes가 NULL인 경우 타이머 개체는 기본 보안 설명자를 가져오고 핸들을 상속할 수 없습니다. 타이머에 대한 기본 보안 설명자의 ACL은 작성자의 기본 또는 가장 토큰에서 가져옵니다.
[in, optional] lpTimerName
타이머 개체의 이름입니다. 이름은 MAX_PATH 문자로 제한됩니다. 이름 비교는 대/소문자를 구분합니다.
lpTimerName이 NULL인 경우 타이머 개체는 이름 없이 만들어집니다.
lpTimerName이 기존 이벤트, 세마포, 뮤텍스, 작업 또는 파일 매핑 개체의 이름과 일치하면 함수가 실패하고 GetLastError가 ERROR_INVALID_HANDLE 반환합니다. 이러한 개체는 동일한 네임스페이스를 공유하기 때문에 발생합니다.
이름에는 전역 또는 세션 네임스페이스에 개체를 명시적으로 만드는 "전역" 또는 "로컬" 접두사를 사용할 수 있습니다. 이름의 나머지 부분에는 백슬래시 문자(\)를 제외한 모든 문자가 포함될 수 있습니다. 자세한 내용은 커널 개체 네임스페이스를 참조하세요. 빠른 사용자 전환은 터미널 서비스 세션을 사용하여 구현됩니다. 커널 개체 이름은 애플리케이션이 여러 사용자를 지원할 수 있도록 터미널 서비스에 대해 설명된 지침을 따라야 합니다.
개체는 프라이빗 네임스페이스에서 만들 수 있습니다. 자세한 내용은 개체 네임스페이스를 참조하세요.
[in] dwFlags
이 매개 변수는 0 또는 다음 값일 수 있습니다.
[in] dwDesiredAccess
타이머 개체의 액세스 마스크입니다. 액세스 권한 목록은 동기화 개체 보안 및 액세스 권한을 참조하세요.
반환 값
함수가 성공하면 반환 값은 타이머 개체에 대한 핸들입니다. 함수 호출 전에 명명된 타이머 개체가 있는 경우 함수는 기존 개체에 대한 핸들을 반환하고 GetLastError 는 ERROR_ALREADY_EXISTS 반환합니다.
함수가 실패하면 반환 값은 NULL입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
호출 프로세스의 모든 스레드는 대기 함수 중 하나에 대한 호출에서 타이머 개체 핸들을 지정할 수 있습니다.
여러 프로세스에는 동일한 타이머 개체에 대한 핸들이 있을 수 있으므로 프로세스 간 동기화에 개체를 사용할 수 있습니다.
- CreateProcess 함수에서 만든 프로세스는 CreateWaitableTimerEx의 lpTimerAttributes 매개 변수가 상속을 사용하도록 설정하는 경우 타이머 개체에 대한 핸들을 상속할 수 있습니다.
- 프로세스는 DuplicateHandle 함수 호출에서 타이머 개체 핸들을 지정할 수 있습니다. 결과 핸들은 다른 프로세스에서 사용할 수 있습니다.
- 프로세스는 OpenWaitableTimer 또는 CreateWaitableTimerEx 함수에 대한 호출에서 타이머 개체의 이름을 지정할 수 있습니다 .
CloseHandle 함수를 사용하여 핸들을 닫습니다. 시스템은 프로세스가 종료되면 핸들을 자동으로 닫습니다. 타이머 개체는 마지막 핸들이 닫혔을 때 제거됩니다.
타이머를 창과 연결하려면 SetTimer 함수를 사용합니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | synchapi.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |