次の方法で共有


SafeHandle.DangerousGetHandle メソッド

定義

handle フィールドの値を戻します。

public:
 IntPtr DangerousGetHandle();
public IntPtr DangerousGetHandle ();
member this.DangerousGetHandle : unit -> nativeint
Public Function DangerousGetHandle () As IntPtr

戻り値

IntPtr

nativeint

IntPtr フィールドの値を表す handle。 ハンドルが SetHandleAsInvalid() で無効としてマークされている場合にも、このメソッドは元のハンドル値を返すため、返される値が古い値である可能性があります。

注釈

このメソッドを使用して、派生クラスのインスタンスから実際のハンドル値を SafeHandle 取得できます。 このメソッドは、.NET Framework の多くのプロパティがハンドル型を返 IntPtr すので、下位互換性のために必要です。 IntPtr ハンドル型は、ポインターまたはハンドルを表すために使用されるプラットフォーム固有の型です。

注意事項

メソッドをDangerousGetHandle使用すると、ハンドルが で無効SetHandleAsInvalidDangerousGetHandleとしてマークされている場合でも、元の古いハンドル値を返す可能性があるため、セキュリティ上のリスクが発生する可能性があります。 返されたハンドルは、任意の時点でリサイクルすることもできます。 これは、ハンドルが突然動作しなくなる可能性があるということです。 最悪の場合、ハンドルまたはハンドルが表すリソースが信頼されていないコードにさらされている場合、再利用または返されたハンドルに対するリサイクル セキュリティ攻撃が発生する可能性があります。 たとえば、信頼されていない呼び出し元は、返されたハンドルのデータに対してクエリを実行し、まったく関係のないリソースの情報を受け取ることができます。 メソッドを DangerousAddRef 安全に使用する方法の DangerousRelease 詳細については、 メソッドと メソッドを DangerousGetHandle 参照してください。

適用対象