CreateEventExW

名前付きまたは名前なしのイベントオブジェクトを作成または開き、そのオブジェクトへのハンドルを返す。(Unicode)

CreateEventExW lpEventAttributes, lpName, dwFlags, dwDesiredAccess

lpEventAttributes : [var] SECURITY_ATTRIBUTES 構造体へのポインタ。lpEventAttributes が NULL の場合、イベントハンドルは子プロセスに継承できない。構造体の lpSecurityDescriptor メンバーが新しいイベントのセキュリティ記述子を指定する。lpEventAttributes が NULL の場合、イベントは既定のセキュリティ記述子を取得する。イベントの既定セキュリティ記述子の ACL は作成者のプライマリトークンまたは impersonation トークンから取得される。
lpName : [wstr] イベントオブジェクトの名前。名前は MAX_PATH 文字に制限される。名前比較は大文字小文字を区別する。lpName が NULL の場合、名前なしでイベントオブジェクトが作成される。lpName が同じ名前空間内の他の種類のオブジェクト(既存のセマフォ、ミューテックス、待機可能タイマ、ジョブ、ファイルマッピングオブジェクトなど)の名前と一致する場合、関数は失敗し GetLastError は ERROR_INVALID_HANDLE を返す。これはこれらのオブジェクトが同じ名前空間を共有するために起こる。名前にはグローバル名前空間またはセッション名前空間にオブジェクトを明示的に作成するための "Global\" または "Local\" プレフィックスを付けられる。名前の残りの部分はバックスラッシュ文字 (\\) を除く任意の文字を含められる。詳細は Kernel Object Namespaces を参照。高速ユーザー切り替えはターミナルサービスセッションを使用して実装される。カーネルオブジェクト名は、アプリケーションが複数ユーザーをサポートできるよう、ターミナルサービス用に示されているガイドラインに従う必要がある。オブジェクトはプライベート名前空間に作成できる。詳細は Object Namespaces を参照。
dwFlags : [int] 
dwDesiredAccess : [int] イベントオブジェクトのアクセスマスク。アクセス権の一覧は Synchronization Object Security and Access Rights を参照。

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

解説

名前付きまたは名前なしのイベントオブジェクトを作成または開き、そのオブジェクトへのハンドルを返す。(Unicode)

[戻り値]

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

[備考]

呼び出し側プロセスの任意のスレッドは、待機関数の呼び出しでイベントオブジェクトハンドルを指定できる。単一オブジェクト待機関数は指定オブジェクトの状態がシグナルされたときに戻る。複数オブジェクト待機関数は指定されたオブジェクトのいずれか
1 つ、またはすべてがシグナルされたときに戻るように指示できる。待機関数が戻ると、待機中のスレッドは実行を続けるために解放される。
イベントオブジェクトの初期状態は dwFlags パラメータで指定される。イベントオブジェクトの状態をシグナルに設定するには
SetEvent 関数を使う。イベントオブジェクトの状態を非シグナルにリセットするには ResetEvent 関数を使う。
マニュアルリセットイベントオブジェクトの状態がシグナルになると、ResetEvent
関数で明示的に非シグナルにリセットされるまでシグナル状態のままとなる。オブジェクトの状態がシグナルである間、待機中のスレッドや、指定イベントオブジェクトに対して後続の待機を開始するスレッドは何個でも解放される。

複数のプロセスが同じイベントオブジェクトのハンドルを持てるので、プロセス間同期にオブジェクトを使用できる。以下のオブジェクト共有機構が利用できる:
(以下省略)

情報

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