次の方法で共有


OpenEventA 関数 (synchapi.h)

既存の名前付きイベント オブジェクトを開きます。

構文

HANDLE OpenEventA(
  [in] DWORD  dwDesiredAccess,
  [in] BOOL   bInheritHandle,
  [in] LPCSTR 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 バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント 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

関連項目

CloseHandle

CreateEvent

CreateProcess

DuplicateHandle

イベント オブジェクト

オブジェクト名

PulseEvent

ResetEvent

SetEvent

同期関数