SafeHandle.DangerousGetHandle メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
handle フィールドの値を返します。
public:
IntPtr DangerousGetHandle();
public IntPtr DangerousGetHandle();
member this.DangerousGetHandle : unit -> nativeint
Public Function DangerousGetHandle () As IntPtr
返品
nativeint
handle フィールドの値を表すIntPtr。 ハンドルが SetHandleAsInvalid() で無効とマークされている場合でも、このメソッドは元のハンドル値を返します。これは古い値である可能性があります。
注釈
このメソッドを使用して、 SafeHandle 派生クラスのインスタンスから実際のハンドル値を取得できます。 .NET Framework の多くのプロパティが IntPtr ハンドル型を返すので、このメソッドは下位互換性のために必要です。
IntPtr ハンドル型は、ポインターまたはハンドルを表すために使用されるプラットフォーム固有の型です。
Caution
DangerousGetHandleメソッドを使用すると、SetHandleAsInvalidでハンドルが無効としてマークされている場合でも、DangerousGetHandleは元の古い可能性のあるハンドル値を返すので、セキュリティ リスクを引き起こす可能性があります。 返されたハンドルは、任意の時点でリサイクルすることもできます。 これは、せいぜいハンドルが突然機能しなくなる可能性を意味します。 最悪の場合、ハンドルまたはハンドルが表すリソースが信頼されていないコードに公開されている場合、再利用または返されたハンドルに対するセキュリティ攻撃がリサイクルされる可能性があります。 たとえば、信頼されていない呼び出し元は、返されたハンドルのデータに対してクエリを実行し、まったく関係のないリソースの情報を受け取ることができます。 DangerousGetHandle メソッドを安全に使用する方法の詳細については、DangerousAddRefとDangerousReleaseメソッドを参照してください。