SafeHandle.DangerousGetHandle 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回 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使用 方法可能會造成安全性風險,因為如果句柄已標示為無效SetHandleAsInvalid,DangerousGetHandle仍會傳回原始的可能過時句柄值。 傳回的句柄也可以在任何時間點回收。 這表示句柄可能突然停止運作。 最糟的是,如果句柄或句柄所代表的資源會公開給不受信任的程序代碼,這可能會導致重複使用或傳回句柄的回收安全性攻擊。 例如,不受信任的呼叫端可以在剛傳回的句柄上查詢數據,並接收完全不相關的資源資訊。 DangerousAddRef如需安全地使用 DangerousGetHandle 方法的詳細資訊,請參閱 和 DangerousRelease 方法。
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應