SafeHandle.DangerousGetHandle SafeHandle.DangerousGetHandle SafeHandle.DangerousGetHandle SafeHandle.DangerousGetHandle Method

定義

handle フィールドの値を返します。Returns the value of the handle field.

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

戻り値

handle フィールドの値を表す IntPtrAn IntPtr representing the value of the handle field. ハンドルが SetHandleAsInvalid() で無効としてマークされている場合にも、このメソッドは元のハンドル値を返すため、返される値が古い値である可能性があります。If the handle has been marked invalid with SetHandleAsInvalid(), this method still returns the original handle value, which can be a stale value.

注釈

このメソッドを使用して、 SafeHandle派生クラスのインスタンスから実際のハンドル値を取得できます。You can use this method to retrieve the actual handle value from an instance of the SafeHandle derived class. このメソッドは、.NET Framework の多くのプロパティがハンドル型を返すIntPtrため、下位互換性を保つために必要です。This method is needed for backwards compatibility because many properties in the .NET Framework return IntPtr handle types. IntPtrハンドル型は、ポインターまたはハンドルを表すために使用されるプラットフォーム固有の型です。IntPtr handle types are platform-specific types used to represent a pointer or a handle.

注意事項

メソッドを使用するとセキュリティ上のリスクが生じる可能性があります。これはSetHandleAsInvalidDangerousGetHandleでハンドルが無効とマークされている場合でも、元の古いハンドル値が返されるためです。 DangerousGetHandleUsing the DangerousGetHandle method can pose security risks because, if the handle has been marked as invalid with SetHandleAsInvalid, DangerousGetHandle still returns the original, potentially stale handle value. 返されたハンドルは、どの時点でもリサイクルできます。The returned handle can also be recycled at any point. つまり、ハンドルが突然動作しなくなる可能性があります。At best, this means the handle might suddenly stop working. 最悪の場合、ハンドルが表すハンドルまたはリソースが信頼されていないコードに公開されると、再利用または返されたハンドルに対するセキュリティ攻撃のリサイクルが発生する可能性があります。At worst, if the handle or the resource that the handle represents is exposed to untrusted code, this can lead to a recycling security attack on the reused or returned handle. たとえば、信頼されていない呼び出し元は、返されただけのハンドルのデータに対してクエリを実行し、完全に関連のないリソースに関する情報を受け取ることができます。For example, an untrusted caller can query data on the handle just returned and receive information for an entirely unrelated resource. Methodsafely に使用DangerousReleaseする方法のDangerousAddRef詳細については、メソッドとメソッドを参照しDangerousGetHandleてください。See the DangerousAddRef and the DangerousRelease methods for more information about using the DangerousGetHandle methodsafely.

セキュリティ

SecurityPermission
アンマネージコードを呼び出すためのアクセス許可。for permission to call unmanaged code. セキュリティアクション: LinkDemandSecurity action: LinkDemand. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

適用対象