CreateWaitableTimerW 関数 (synchapi.h)
待機可能タイマー オブジェクトを作成または開きます。
オブジェクトのアクセス マスクを指定するには、CreateWaitableTimerEx 関数を使用します。
構文
HANDLE CreateWaitableTimerW(
[in, optional] LPSECURITY_ATTRIBUTES lpTimerAttributes,
[in] BOOL bManualReset,
[in, optional] LPCWSTR lpTimerName
);
パラメーター
[in, optional] lpTimerAttributes
新しいタイマー オブジェクトのセキュリティ記述子を指定し、子プロセスが返されたハンドルを継承できるかどうかを判断する SECURITY_ATTRIBUTES 構造体へのポインター。
lpTimerAttributes
[in] bManualReset
このパラメーターが TRUE
[in, optional] lpTimerName
タイマー オブジェクトの名前。 名前は MAX_PATH 文字に制限されています。 名前の比較では大文字と小文字が区別されます。
lpTimerName
lpTimerName
名前には、グローバル名前空間またはセッション名前空間にオブジェクトを明示的に作成するための "Global" または "Local" プレフィックスを付けることができます。 名前の残りの部分には、円記号 (\) を除く任意の文字を含めることができます。 詳細については、「カーネル オブジェクト名前空間
オブジェクトはプライベート名前空間に作成できます。 詳細については、「オブジェクト名前空間の」を参照してください。
戻り値
関数が成功した場合、戻り値はタイマー オブジェクトへのハンドルです。 関数呼び出しの前に名前付きタイマー オブジェクトが存在する場合、関数は既存のオブジェクトへのハンドルを返し、GetLastError は ERROR_ALREADY_EXISTSを返します。
関数が失敗した場合、戻り値は NULL
備考
CreateWaitableTimer によって返されるハンドルは、TIMER_ALL_ACCESS アクセス権を使用して作成されます。呼び出し元にアクセス権が付与されている場合は、タイマー オブジェクトへのハンドルを必要とする任意の関数で使用できます。 別のユーザーを偽装しているサービスまたはスレッドからタイマーが作成された場合は、タイマーの作成時にセキュリティ記述子を適用するか、既定の DACL を変更して作成プロセスの既定のセキュリティ記述子を変更できます。 詳細については、「同期オブジェクトのセキュリティとアクセス権のを
呼び出し元プロセスのすべてのスレッドは、のいずれかの
複数のプロセスが同じタイマー オブジェクトへのハンドルを持つ可能性があり、プロセス間同期にオブジェクトを使用できます。
- CreateWaitableTime r
の lpTimerAttributes パラメーターが継承を有効にしている場合、CreateProcess 関数によって作成されたプロセスはタイマー オブジェクトハンドルを継承できます。 - プロセスでは、DuplicateHandle 関数の呼び出しでタイマー オブジェクト ハンドルを指定できます。 結果のハンドルは、別のプロセスで使用できます。
- プロセスでは、
OpenWaitableTimer の呼び出しまたは CreateWaitableTimer 関数呼び出しでタイマー オブジェクトの名前を指定できます。
この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNT を 0x0400 以降として定義します。 詳細については、「Windows ヘッダーの使用」を参照してください。
タイマーをウィンドウに関連付けるには、SetTimer 関数を使用します。
例
CreateWaitableTimer
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | synchapi.h (Windows.h を含む) |
ライブラリ | Kernel32.lib |
DLL | Kernel32.dll |
関連項目
CancelWaitableTimer の
CloseHandle の
CreateProcess の
CreateWaitableTimerEx の
DuplicateHandle の
FILETIME を
SetWaitableTimer の
待機可能タイマー オブジェクト を