OpenWaitableTimerW

既存の名前付き待機可能タイマーオブジェクトを開く。

OpenWaitableTimerW dwDesiredAccess, bInheritHandle, lpTimerName

dwDesiredAccess : [int] タイマーオブジェクトへのアクセス。指定オブジェクトのセキュリティ記述子が呼び出し側プロセスに要求されたアクセスを許可しない場合、関数は失敗する。アクセス権の一覧は「同期オブジェクトのセキュリティとアクセス権」を参照。
bInheritHandle : [int] この値が TRUE の場合、このプロセスから作成されたプロセスはハンドルを継承する。そうでない場合、プロセスはこのハンドルを継承しない。
lpTimerName : [wstr] タイマーオブジェクトの名前。名前は MAX_PATH 文字に制限される。名前比較は大文字小文字を区別する。この関数はプライベート名前空間内のオブジェクトを開ける。詳細は「オブジェクト名前空間」を参照。ターミナルサービス: 名前は "Global\" または "Local\" プレフィックスを持つことができ、グローバル名前空間またはセッション名前空間にあるオブジェクトを明示的に開ける。名前の残り部分にはバックスラッシュ (\\) 以外の任意の文字を含められる。詳細は「カーネルオブジェクト名前空間」を参照。注: ファーストユーザー切り替えはターミナルサービスセッションを使って実装される。最初にログオンしたユーザーはセッション 0 を使用し、次のユーザーはセッション 1 を使用する、というように続く。アプリケーションが複数ユーザーをサポートできるよう、カーネルオブジェクト名はターミナルサービス向けのガイドラインに従わなければならない。

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

解説

既存の名前付き待機可能タイマーオブジェクトを開く。

[戻り値]
関数が成功した場合、戻り値はタイマーオブジェクトのハンドルである。関数が失敗した場合、戻り値は NULL
である。拡張エラー情報を取得するには GetLastError を呼ぶ。

[備考]
OpenWaitableTimer
関数は、複数のプロセスが同じタイマーオブジェクトのハンドルを開けるようにする。関数は、あるプロセスが既に
[CreateWaitableTimer](./nf-synchapi-createwaitabletimerw.md)
関数を使ってタイマーを作成している場合にのみ成功する。呼び出し側プロセスは、dwDesiredAccess
引数で指定されたアクセスの制限のもと、タイマーオブジェクトのハンドルを要求する関数(待機関数など)で返されたハンドルを使用できる。返されたハンドルは
DuplicateHandle 関数を使って複製できる。ハンドルを閉じるには CloseHandle
関数を使う。プロセス終了時にはシステムが自動的にハンドルを閉じる。タイマーオブジェクトは、最後のハンドルが閉じられた時点で破棄される。この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNT
を 0x0400 以上に定義する。詳細は「Windows ヘッダの使用」を参照。

情報

プラグイン / モジュール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