CreateWaitableTimerExW

待機可能タイマーオブジェクトを作成または開き、そのオブジェクトへのハンドルを返す。

CreateWaitableTimerExW lpTimerAttributes, lpTimerName, dwFlags, dwDesiredAccess

lpTimerAttributes : [var] SECURITY_ATTRIBUTES 構造体へのポインタ。このパラメータが NULL の場合、タイマーハンドルは子プロセスに継承できない。lpTimerAttributes が NULL の場合、タイマーオブジェクトはデフォルトのセキュリティ記述子を取得し、ハンドルは継承できない。タイマーのデフォルトセキュリティ記述子の ACL は、作成者のプライマリトークンまたは偽装トークンに由来する。
lpTimerName : [wstr] タイマーオブジェクトの名前。名前は MAX_PATH 文字までに制限される。名前比較は大文字小文字を区別する。
dwFlags : [int] このパラメータには 0 または次の値を指定できる。
dwDesiredAccess : [int] タイマーオブジェクトのアクセスマスク。アクセス権の一覧については Synchronization Object Security and Access Rights を参照。

(プラグイン / モジュール : kernel32.dll)

解説

待機可能タイマーオブジェクトを作成または開き、そのオブジェクトへのハンドルを返す。

[戻り値]

関数が成功した場合、戻り値はタイマーオブジェクトへのハンドルである。関数呼び出しの前に名前付きタイマーオブジェクトが存在していた場合、関数は既存オブジェクトへのハンドルを返し、GetLastError
は ERROR_ALREADY_EXISTS を返す。関数が失敗した場合、戻り値は NULL である。拡張エラー情報を取得するには
GetLastError を呼ぶ。

[備考]

呼び出し側プロセスの任意のスレッドが、待機関数の呼び出しでタイマーオブジェクトハンドルを指定できる。複数のプロセスが同じタイマーオブジェクトへのハンドルを持つことができ、プロセス間同期に使用できる。*
CreateProcess 関数で作成されたプロセスは、CreateWaitableTimerEx の lpTimerAttributes
パラメータが継承を有効にしている場合、タイマーオブジェクトへのハンドルを継承できる。* プロセスは DuplicateHandle
関数の呼び出しでタイマーオブジェクトハンドルを指定できる。結果のハンドルは別のプロセスから使用できる。* プロセスは
[OpenWaitableTimer](./nf-synchapi-openwaitabletimerw.md) または
CreateWaitableTimerEx 関数の呼び出しでタイマーオブジェクトの名前を指定できる。ハンドルを閉じるには
CloseHandle
関数を使用する。プロセスが終了するとシステムが自動的にハンドルを閉じる。最後のハンドルが閉じられるとタイマーオブジェクトは破棄される。タイマーをウィンドウに関連付けるには
SetTimer 関数を使用する。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs