CriticalHandle クラス
アセンブリ: mscorlib (mscorlib.dll 内)
構文Public MustInherit Class CriticalHandle Inherits CriticalFinalizerObject Implements IDisposable
public abstract class CriticalHandle : CriticalFinalizerObject, IDisposable
public abstract class CriticalHandle extends CriticalFinalizerObject implements IDisposable
public abstract class CriticalHandle extends CriticalFinalizerObject implements IDisposable
解説CriticalHandle クラスは、SafeHandle クラスと似ていますが、SafeHandle が参照カウントを実装する点が異なります。独自に必要な同期化をより効率的に提供できる場合には、SafeHandle の代わりに CriticalHandle を使用することで、パフォーマンスの問題に対処できます。
CriticalHandle クラスは参照カウントを実行しないため、ハンドル リサイクルによるセキュリティ攻撃に対する防御が用意されていません。参照カウント アルゴリズムは暗黙的に操作をシリアル化するので、ある程度のスレッド セーフも失われます。ハンドルを使用する操作が別のスレッドで保留されている間に IDisposable.Dispose メソッドまたは Close メソッドを呼び出した場合、または同時に 2 つのスレッドから IDisposable.Dispose または Close を呼び出した場合、結果は非決定的となります。CriticalHandle クラスは、引き続き CriticalFinalizerObject クラスが提供する保証された重大な終了処理も行います。
.NET Framework のセキュリティ- SecurityPermission (アンマネージ コードを呼び出すために必要なアクセス許可)。 UnmanagedCode (関連する列挙体)。Demand (セキュリティ アクション)。
継承階層System.Runtime.ConstrainedExecution.CriticalFinalizerObject
System.Runtime.InteropServices.CriticalHandle
Microsoft.Win32.SafeHandles.CriticalHandleMinusOneIsInvalid
Microsoft.Win32.SafeHandles.CriticalHandleZeroOrMinusOneIsInvalid
スレッド セーフ
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照CriticalHandle コンストラクタ
アセンブリ: mscorlib (mscorlib.dll 内)
構文
例外
.NET Framework のセキュリティ- SecurityPermission (アンマネージ コードを呼び出すために必要なアクセス許可)。 UnmanagedCode (関連する列挙体)。LinkDemand (セキュリティ アクション)。
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照CriticalHandle フィールド
CriticalHandle プロパティ
CriticalHandle メソッド
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Close | リソースを解放するようにハンドルにマークを付けます。 |
| Dispose | オーバーロードされます。 リソースを解放するようにハンドルにマークを付けます。 |
| Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
| GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
| GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
| SetHandleAsInvalid | ハンドルを無効としてマークします。 |
| ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Dispose | オーバーロードされます。 リソースを解放するようにハンドルにマークを付けます。 |
| Finalize | オーバーライドされます。 ハンドルに関連付けられたすべてのリソースを解放します。 |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
| ReleaseHandle | 派生クラスでオーバーライドされると、ハンドルを解放するために必要なコードを実行します。 |
| SetHandle | ハンドルを、指定した既存のハンドルに設定します。 |
参照CriticalHandle メンバ
CriticalHandle データ型で公開されるメンバを以下の表に示します。
プロテクト コンストラクタ
プロテクト フィールド
パブリック プロパティ
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Close | リソースを解放するようにハンドルにマークを付けます。 |
| Dispose | オーバーロードされます。 リソースを解放するようにハンドルにマークを付けます。 |
| Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
| GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
| GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
| SetHandleAsInvalid | ハンドルを無効としてマークします。 |
| ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Dispose | オーバーロードされます。 リソースを解放するようにハンドルにマークを付けます。 |
| Finalize | オーバーライドされます。 ハンドルに関連付けられたすべてのリソースを解放します。 |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
| ReleaseHandle | 派生クラスでオーバーライドされると、ハンドルを解放するために必要なコードを実行します。 |
| SetHandle | ハンドルを、指定した既存のハンドルに設定します。 |
参照- CriticalHandleのページへのリンク