CreateEventW 関数 (synchapi.h)
名前付きまたは名前のないイベント オブジェクトを作成または開きます。
オブジェクトのアクセス マスクを指定するには、CreateEventEx 関数を使用します。
構文
HANDLE CreateEventW(
[in, optional] LPSECURITY_ATTRIBUTES lpEventAttributes,
[in] BOOL bManualReset,
[in] BOOL bInitialState,
[in, optional] LPCWSTR lpName
);
パラメーター
[in, optional] lpEventAttributes
SECURITY_ATTRIBUTES 構造体へのポインター。 このパラメーターが NULL
構造体の lpSecurityDescriptor メンバーは、新しいイベントの セキュリティ記述子 を指定します。 lpEventAttributes
[in] bManualReset
このパラメーターが TRUE
[in] bInitialState
このパラメーターが TRUE
[in, optional] lpName
イベント オブジェクトの名前。 名前は MAX_PATH 文字に制限されています。 名前の比較では大文字と小文字が区別されます。
lpName
lpName
lpName
名前には、グローバル名前空間またはセッション名前空間にオブジェクトを明示的に作成するための "Global" または "Local" プレフィックスを付けることができます。 名前の残りの部分には、円記号 (\) を除く任意の文字を含めることができます。 詳細については、「カーネル オブジェクト名前空間
オブジェクトはプライベート名前空間に作成できます。 詳細については、「オブジェクト名前空間の」を参照してください。
戻り値
関数が成功した場合、戻り値はイベント オブジェクトへのハンドルです。 関数呼び出しの前に名前付きイベント オブジェクトが存在する場合、関数は既存のオブジェクトへのハンドルを返し、GetLastError
関数が失敗した場合、戻り値は NULL
備考
CreateEvent によって返されるハンドルには、EVENT_ALL_ACCESS アクセス権があります。呼び出し元にアクセス権が付与されている場合は、イベント オブジェクトへのハンドルを必要とする任意の関数で使用できます。 イベントがサービスまたは別のユーザーを偽装しているスレッドから作成された場合は、イベントの作成時にセキュリティ記述子を適用するか、既定の DACL を変更して作成プロセスの既定のセキュリティ記述子を変更できます。 詳細については、「同期オブジェクトのセキュリティとアクセス権のを
呼び出し元プロセスの任意のスレッドは、のいずれかの
イベント オブジェクトの初期状態は、bInitialState パラメーターによって指定されます。 SetEvent 関数を使用して、イベント オブジェクトの状態をシグナル通知に設定します。 ResetEvent 関数を使用して、イベント オブジェクトの状態を非署名にリセットします。
手動リセット イベント オブジェクトの状態が通知されると、ResetEvent 関数によって非署名に明示的にリセットされるまで、通知されたままになります。 任意の数の待機中のスレッド、または指定されたイベント オブジェクトの待機操作をその後開始するスレッドは、オブジェクトの状態が通知されている間に解放できます。
自動リセット イベント オブジェクトの状態が通知されると、1 つの待機中のスレッドが解放されるまで通知されたままになります。その後、システムは自動的に状態を非署名状態にリセットします。 待機しているスレッドがない場合、イベント オブジェクトの状態はシグナル状態のままです。
複数のプロセスが同じイベント オブジェクトのハンドルを持つ可能性があり、プロセス間同期にオブジェクトを使用できます。 次のオブジェクト共有メカニズムを使用できます。
CreateProcess 関数によって作成された子プロセスは、lpEventAttributes が CreateEvent の パラメーター 継承を有効にした場合、イベント オブジェクトハンドルを継承できます。 - プロセスでは、DuplicateHandle 関数の呼び出しでイベント オブジェクト ハンドルを指定して、別のプロセスで使用できる重複するハンドルを作成できます。
- プロセスでは、
OpenEvent または CreateEvent 関数の呼び出しでイベント オブジェクトの名前指定できます。
例
CreateEvent
手記
synchapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして CreateEvent を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | synchapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む) |
ライブラリ | Kernel32.lib |
DLL | Kernel32.dll |
関連項目
CloseHandle の
CreateEventEx の
CreateProcess の
DuplicateHandle の
ResetEvent の
SetEvent の