OpenEventW 関数 (synchapi.h)
既存の名前付きイベント オブジェクトを開きます。
構文
HANDLE OpenEventW(
[in] DWORD dwDesiredAccess,
[in] BOOL bInheritHandle,
[in] LPCWSTR lpName
);
パラメーター
[in] dwDesiredAccess
イベント オブジェクトへのアクセス。 指定したオブジェクトのセキュリティ記述子が呼び出し元プロセスに対して要求されたアクセスを許可しない場合、関数は失敗します。 アクセス権の一覧については、「 同期オブジェクトのセキュリティとアクセス権」を参照してください。
[in] bInheritHandle
この値が TRUE の場合、このプロセスによって作成されたプロセスはハンドルを継承します。 それ以外の場合、プロセスはこのハンドルを継承しません。
[in] lpName
開くイベントの名前。 名前の比較では、大文字と小文字が区別されます。
この関数は、プライベート名前空間内のオブジェクトを開くことができます。 詳細については、「 オブジェクト名前空間」を参照してください。
ターミナル サービス: 名前には、グローバル名前空間またはセッション名前空間内のオブジェクトを明示的に開くために、"Global" または "Local" プレフィックスを付けることができます。 名前の残りの部分には、円記号 (\) を除く任意の文字を含めることができます。 詳細については、「 カーネル オブジェクトの名前空間」を参照してください。
メモ 高速ユーザー切り替えは、ターミナル サービス セッションを使用して実装されます。 最初にログオンするユーザーはセッション 0 を使用し、次にログオンするユーザーはセッション 1 を使用します。 カーネル オブジェクト名は、アプリケーションが複数のユーザーをサポートできるように、ターミナル サービスに関して説明されているガイドラインに従う必要があります。
戻り値
関数が成功した場合、戻り値はイベント オブジェクトへのハンドルです。
関数が失敗した場合は、返される値は NULL です。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
OpenEvent 関数を使用すると、複数のプロセスで同じイベント オブジェクトのハンドルを開きます。 関数は、 CreateEvent 関数を使用してイベントが既に作成されているプロセスがある場合にのみ成功します。 呼び出し元のプロセスは、 dwDesiredAccess パラメーターで指定されたアクセスの制限に従って、イベント オブジェクトへのハンドルを必要とする任意の関数で、返されたハンドルを使用できます。
ハンドルは DuplicateHandle 関数を使用して複製できます。 CloseHandle 関数を使用してハンドルを閉じます。 プロセスが終了すると、ハンドルが自動的に閉じられます。 イベント オブジェクトは、最後のハンドルが閉じられたときに破棄されます。
注意
synchapi.h ヘッダーは、OpenEvent をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | synchapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |