EventWaitHandleAcl.Create メソッド

定義

EventWaitHandle インスタンスを取得または作成します。これにより、EventWaitHandleSecurity インスタンスをイベントの作成時に設定するように必要に応じて指定できます。

public:
 static System::Threading::EventWaitHandle ^ Create(bool initialState, System::Threading::EventResetMode mode, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::EventWaitHandleSecurity ^ eventSecurity);
public static System.Threading.EventWaitHandle Create(bool initialState, System.Threading.EventResetMode mode, string? name, out bool createdNew, System.Security.AccessControl.EventWaitHandleSecurity? eventSecurity);
static member Create : bool * System.Threading.EventResetMode * string * bool * System.Security.AccessControl.EventWaitHandleSecurity -> System.Threading.EventWaitHandle
Public Shared Function Create (initialState As Boolean, mode As EventResetMode, name As String, ByRef createdNew As Boolean, eventSecurity As EventWaitHandleSecurity) As EventWaitHandle

パラメーター

initialState
Boolean

true この呼び出しの結果として名前付きイベントが作成された場合に初期状態を signaled に設定する場合。非シグナルに設定する false

mode
EventResetMode

イベントが自動的にリセットされるか手動でリセットされるかを決定する列挙値の 1 つ。

name
String

同期オブジェクトを他のプロセスと共有する場合の名前。それ以外の場合は、 null または空の文字列。 名前では大文字と小文字が区別されます。 円記号 (\) は予約されており、名前空間の指定にのみ使用できます。 名前空間の詳細については、「解説」セクションを参照してください。 オペレーティング システムによっては、名前にさらに制限がある場合があります。 たとえば、Unix ベースのオペレーティング システムでは、名前空間を除外した後の名前は有効なファイル名である必要があります。

createdNew
Boolean

このメソッドが戻るときに、ローカル イベントが作成された場合、つまり、namenullまたはEmptyの場合、この引数は常にtrueに設定されます。 nameに有効な空以外の値がある場合、この引数はシステム イベントの作成時にtrueに設定されます。または、その名前で既存のシステム イベントが見つかった場合はfalseに設定されます。

eventSecurity
EventWaitHandleSecurity

適用するアクセス制御セキュリティWindows省略可能です。

返品

要求されたイベント待機ハンドルを表すオブジェクト。

例外

mode列挙型の値が有効範囲外でした。

-又は-

.NET Framework のみ: name がMAX_PATH (260 文字) より長くなっています。

mode列挙型の値が有効範囲外でした。 場合によっては、代わりに ArgumentException がスローされます。

name が無効です。 これは、不明なプレフィックスや無効な文字など、オペレーティング システムによって適用される可能性のあるいくつかの制限など、さまざまな理由が考えられます。 名前と共通プレフィックス "Global\" と "Local\" では大文字と小文字が区別されることに注意してください。

-又は-

その他のエラーが発生しました。 HResultプロパティは、詳細情報を提供する場合があります。

Windowsのみ: nameが不明な名前空間を指定しました。 詳細については、「 オブジェクト名」 を参照してください。

name は長すぎます。 長さの制限は、オペレーティング システムまたは構成によって異なります。

指定された name を持つ同期オブジェクトを作成できません。 異なる種類の同期オブジェクトの名前が同じである可能性があります。

名前付きイベントは存在しますが、ユーザーは必要なセキュリティ アクセス権を持っていません。

.NET Framework のみ: name の長さがMAX_PATH (260 文字) を超えています。

注釈

nameには、名前空間を指定するために、Global\またはLocal\のプレフィックスを付ける場合があります。 Global名前空間を指定すると、同期オブジェクトをシステム上の任意のプロセスと共有できます。 Local名前空間が指定されている場合(名前空間が指定されていない場合の既定値)、同期オブジェクトを同じセッション内のプロセスと共有できます。 Windowsでは、セッションはログイン セッションであり、サービスは通常、別の非対話型セッションで実行されます。 Unix に似たオペレーティング システムでは、各シェルに独自のセッションがあります。 セッションとローカルの同期オブジェクトは、プロセス間の同期に適している場合があります。このオブジェクトはすべて同じセッションで実行されます。 Windowsの同期オブジェクト名の詳細については、「Object Names」を参照してください。

nameが指定されていて、要求された型の同期オブジェクトが名前空間に既に存在する場合は、既存の同期オブジェクトが開かれます。 別の型の同期オブジェクトが既に名前空間に存在する場合は、 WaitHandleCannotBeOpenedException がスローされます。 それ以外の場合は、新しい同期オブジェクトが作成されます。

Caution

既定では、名前付きイベントは、それを作成したユーザーに制限されません。 他のユーザーは、イベントを不適切に設定またはリセットすることによってイベントを妨害するなど、イベントを開いて使用できる場合があります。 特定のユーザーへのアクセスを制限するために、名前付きイベントの作成時に EventWaitHandleSecurity を渡すことができます。 信頼されていないユーザーがコードを実行している可能性があるシステムでは、アクセス制限なしで名前付きイベントを使用しないでください。

適用対象