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如需安全地使用 DangerousGetHandle 方法的詳細資訊,請參閱 和 DangerousRelease 方法。

適用於