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を返します。 これは、これらのオブジェクトが同じ名前空間を共有しているために発生します。
名前には、グローバル名前空間またはセッション名前空間にオブジェクトを明示的に作成するための "Global" または "Local" プレフィックスを付けることができます。 名前の残りの部分には、円記号 (\) を除く任意の文字を含めることができます。 詳細については、「 カーネル オブジェクトの名前空間」を参照してください。 ターミナル サービス セッションを使用して、高速ユーザー切り替えが実装されます。 カーネル オブジェクト名は、アプリケーションが複数のユーザーをサポートできるように、ターミナル サービスに関するガイドラインに従う必要があります。
オブジェクトは、プライベート名前空間に作成できます。 詳細については、「 オブジェクトの名前空間」を参照してください。
[in] dwFlags
このパラメーターには、0 または次の値を指定できます。
[in] dwDesiredAccess
タイマー オブジェクトのアクセス マスク。 アクセス権の一覧については、「 同期オブジェクトのセキュリティとアクセス権」を参照してください。
戻り値
関数が成功した場合、戻り値はタイマー オブジェクトへのハンドルです。 関数呼び出しの前に名前付きタイマー オブジェクトが存在する場合、関数は既存のオブジェクトへのハンドルを返し、GetLastError はERROR_ALREADY_EXISTSを返します。
関数が失敗した場合は、返される値は NULL です。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
呼び出し元プロセスのスレッドは、 いずれかの待機関数の呼び出しでタイマー オブジェクト ハンドルを指定できます。
複数のプロセスで同じタイマー オブジェクトへのハンドルを持つ可能性があり、プロセス間同期に オブジェクトを使用できます。
- CreateWaitableTimerEx の lpTimerAttributes パラメーターで継承が有効な場合、CreateProcess 関数によって作成されたプロセスはタイマー オブジェクトにハンドルを継承できます。
- プロセスでは、 DuplicateHandle 関数の呼び出しでタイマー オブジェクト ハンドルを指定できます。 結果のハンドルは、別のプロセスで使用できます。
- プロセスでは、 OpenWaitableTimer または CreateWaitableTimerEx 関数の呼び出しでタイマー オブジェクトの名前 を 指定できます。
CloseHandle 関数を使用してハンドルを閉じます。 プロセスが終了すると、ハンドルが自動的に閉じられます。 タイマー オブジェクトは、最後のハンドルが閉じられると破棄されます。
タイマーをウィンドウに関連付けるには、 SetTimer 関数を使用します。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | synchapi.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |