MutexAcl.Create(Boolean, String, Boolean, MutexSecurity) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Mutex インスタンスを取得または作成します。これにより、ミューテックスの作成時に必要に応じて MutexSecurity を設定するように指定できます。
public:
static System::Threading::Mutex ^ Create(bool initiallyOwned, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::MutexSecurity ^ mutexSecurity);
public static System.Threading.Mutex Create (bool initiallyOwned, string? name, out bool createdNew, System.Security.AccessControl.MutexSecurity? mutexSecurity);
static member Create : bool * string * bool * System.Security.AccessControl.MutexSecurity -> System.Threading.Mutex
Public Shared Function Create (initiallyOwned As Boolean, name As String, ByRef createdNew As Boolean, mutexSecurity As MutexSecurity) As Mutex
パラメーター
- initiallyOwned
- Boolean
この呼び出しの結果として名前付きシステム ミューテックスが作成された場合に、呼び出し元スレッドに名前付きシステム ミューテックスの初期所有権を付与する場合は true
。それ以外の場合は false
。
- name
- String
同期オブジェクトが他のプロセスと共有される場合は、名前。それ以外の場合は、null
または空の文字列。 名前の大文字と小文字は区別されます。 円記号 (\) は予約されており、名前空間の指定にのみ使用できます。 名前空間の詳細については、「解説」セクションを参照してください。 オペレーティング システムによっては、名前にさらに制限がある場合があります。 たとえば、Unix ベースのオペレーティング システムでは、名前空間を除外した後の名前は有効なファイル名である必要があります。
- createdNew
- Boolean
ローカル ミューテックスが作成された場合、つまり name
が null
または Empty の場合、このメソッドから戻るときにこの引数は常に true
に設定されます。
name
に有効な空でない値が含まれている場合、システム ミューテックスが作成されるときにこの引数は true
に設定されます。または、既存のシステム ミューテックスがその名前で見つかった場合は false
に設定されます。 このパラメーターは初期化せずに渡されます。
- mutexSecurity
- MutexSecurity
適用する省略可能なミューテックス アクセス制御セキュリティ。
戻り値
名前がある場合はシステム ミューテックスを、名前がない場合はローカル ミューテックスを表すオブジェクト。
例外
.NET Framework のみ: name
がMAX_PATH (260 文字) を超えています。
name
が無効です。 これは、不明なプレフィックスや無効な文字など、オペレーティング システムによって配置される可能性のある制限など、さまざまな理由で発生する可能性があります。 名前と共通プレフィックス "Global\" と "Local\" では大文字と小文字が区別されることに注意してください。
または
他にもエラーが発生しました。
HResult
プロパティにさらに情報が含まれている場合があります。
Windows のみ: name
により不明な名前空間が指定されました。 詳しくは、「オブジェクト名」をご覧ください。
name
は長すぎます。 長さの制限は、オペレーティング システムまたは構成によって異なる場合があります。
指定された name
を持つ同期オブジェクトを作成できません。 別の型の同期オブジェクトに同じ名前が指定されている可能性があります。
注釈
名前空間をname
指定するには、 または のプレフィックスGlobal\
Local\
を付けます。 名前空間を Global
指定すると、同期オブジェクトをシステム上の任意のプロセスと共有できます。 名前空間が Local
指定されている場合(名前空間が指定されていない場合の既定値)、同期オブジェクトは同じセッション内のプロセスと共有される場合があります。 Windows では、セッションはログイン セッションであり、通常、サービスは別の非対話型セッションで実行されます。 Unix に似たオペレーティング システムでは、各シェルに独自のセッションがあります。 セッションローカル同期オブジェクトは、同じセッションで実行される親子関係を持つプロセス間の同期に適している場合があります。 Windows での同期オブジェクト名の詳細については、「 オブジェクト名」を参照してください。
name
が指定され、要求された型の同期オブジェクトが名前空間に既に存在する場合は、既存の同期オブジェクトが開かれます。 別の型の同期オブジェクトが名前空間に既に存在する場合は、 WaitHandleCannotBeOpenedException
がスローされます。 それ以外の場合は、新しい同期オブジェクトが作成されます。
注意事項
既定では、名前付きミューテックスは、それを作成したユーザーに制限されません。 他のユーザーは、ミューテックスを開いて使用できる場合があります。ミューテックスに入ってミューテックスを終了しないことによるミューテックスの干渉などです。 特定のユーザーへのアクセスを制限するために、名前付きミューテックスを作成するときに を渡 MutexSecurity すことができます。 信頼されていないユーザーがコードを実行している可能性があるシステムでは、アクセス制限なしで名前付きミューテックスを使用しないでください。
適用対象
.NET