SafeBuffer 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
警告
SafeBuffer may be unavailable in future releases.
提供可用於讀取和寫入的受控制記憶體緩衝區。 嘗試存取受控制緩衝區之外的記憶體 (不足和滿溢) 會引發例外狀況。
public ref class SafeBuffer abstract : System::Runtime::InteropServices::SafeHandle
public ref class SafeBuffer abstract : Microsoft::Win32::SafeHandles::SafeHandleZeroOrMinusOneIsInvalid
[System.Security.SecurityCritical]
public abstract class SafeBuffer : System.Runtime.InteropServices.SafeHandle
public abstract class SafeBuffer : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
[System.Security.SecurityCritical]
public abstract class SafeBuffer : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
[System.Security.SecurityCritical]
[System.Obsolete("SafeBuffer may be unavailable in future releases.")]
public abstract class SafeBuffer : System.Runtime.InteropServices.SafeHandle
[<System.Security.SecurityCritical>]
type SafeBuffer = class
inherit SafeHandle
type SafeBuffer = class
inherit SafeHandleZeroOrMinusOneIsInvalid
[<System.Security.SecurityCritical>]
type SafeBuffer = class
inherit SafeHandleZeroOrMinusOneIsInvalid
[<System.Security.SecurityCritical>]
[<System.Obsolete("SafeBuffer may be unavailable in future releases.")>]
type SafeBuffer = class
inherit SafeHandle
Public MustInherit Class SafeBuffer
Inherits SafeHandle
Public MustInherit Class SafeBuffer
Inherits SafeHandleZeroOrMinusOneIsInvalid
- 繼承
- 繼承
- 繼承
- 衍生
- 屬性
備註
您必須先呼叫 方法, SafeBuffer.Initialize 才能使用的任何 實例 SafeBuffer。 若要避免在靜態變數中儲存對象的實例 SafeBuffer 時發生競爭,您應該使用下列其中一種方法:
發行 SafeBuffer時建立鎖定。
建立局部變數、初始化 SafeBuffer,然後使用 方法將 指派 SafeBuffer 給靜態變數 Interlocked.CompareExchange 。
注意
靜態類別建構函式中的指派會隱含鎖定。
建構函式
SafeBuffer(Boolean) |
已淘汰.
初始化 SafeBuffer 類別的新執行個體,並且指定是否要確實地釋放緩衝區控制代碼。 |
欄位
handle |
已淘汰.
指定要包裝的控制代碼。 (繼承來源 SafeHandle) |
屬性
ByteLength |
已淘汰.
取得緩衝區的大小,以位元組為單位。 |
IsClosed |
已淘汰.
取得值,指出控制代碼是否已關閉。 (繼承來源 SafeHandle) |
IsInvalid |
已淘汰.
取得值,表示控制代碼是否無效。 |
IsInvalid |
已淘汰.
取得值,表示控制代碼是否無效。 (繼承來源 SafeHandleZeroOrMinusOneIsInvalid) |
方法
AcquirePointer(Byte*) |
已淘汰.
從 SafeBuffer 物件取得記憶體區塊的指標。 |
Close() |
已淘汰.
標記要釋出和釋放資源的控制代碼。 (繼承來源 SafeHandle) |
DangerousAddRef(Boolean) |
已淘汰.
手動遞增 SafeHandle 執行個體上的參考計數器。 (繼承來源 SafeHandle) |
DangerousGetHandle() |
已淘汰.
傳回 handle 欄位的值。 (繼承來源 SafeHandle) |
DangerousRelease() |
已淘汰.
手動遞減 SafeHandle 執行個體上的參考計數器。 (繼承來源 SafeHandle) |
Dispose() |
已淘汰.
釋放 SafeHandle 類別所使用的所有資源。 (繼承來源 SafeHandle) |
Dispose(Boolean) |
已淘汰.
釋放 SafeHandle 類別所使用的 Unmanaged 資源,指定是否要執行一般處置作業。 (繼承來源 SafeHandle) |
Equals(Object) |
已淘汰.
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
已淘汰.
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
已淘汰.
取得目前執行個體的 Type。 (繼承來源 Object) |
Initialize(UInt32, UInt32) |
已淘汰.
使用指定的項目數目和項目大小,指定記憶體緩衝區的配置大小。 您必須先呼叫這個方法,才能夠使用 SafeBuffer 執行個體。 |
Initialize(UInt64) |
已淘汰.
定義記憶體區域的配置大小 (以位元組為單位)。 您必須先呼叫這個方法,才能夠使用 SafeBuffer 執行個體。 |
Initialize<T>(UInt32) |
已淘汰.
指定實值型別的數目,定義記憶體區域的配置大小。 您必須先呼叫這個方法,才能夠使用 SafeBuffer 執行個體。 |
MemberwiseClone() |
已淘汰.
建立目前 Object 的淺層複製。 (繼承來源 Object) |
Read<T>(UInt64) |
已淘汰.
從記憶體中指定的位移讀取實值型別。 |
ReadArray<T>(UInt64, T[], Int32, Int32) |
已淘汰.
從記憶體中的位移開始讀取指定數目的實值型別,並從陣列中的索引處開始寫入。 |
ReadSpan<T>(UInt64, Span<T>) |
已淘汰.
從位移開始從記憶體讀取實值型別,並將其寫入範圍。 要讀取的實值型別數目取決於範圍長度。 |
ReleaseHandle() |
已淘汰.
在衍生類別中覆寫時,執行釋放控制代碼所需的程式碼。 (繼承來源 SafeHandle) |
ReleasePointer() |
已淘汰.
釋放 AcquirePointer(Byte*) 方法所取得的指標。 |
SetHandle(IntPtr) |
已淘汰.
將控制代碼設定為指定的既有控制代碼。 (繼承來源 SafeHandle) |
SetHandleAsInvalid() |
已淘汰.
將控制代碼標記為不再使用。 (繼承來源 SafeHandle) |
ToString() |
已淘汰.
傳回代表目前物件的字串。 (繼承來源 Object) |
Write<T>(UInt64, T) |
已淘汰.
將實值型別寫入至記憶體中指定的位置。 |
WriteArray<T>(UInt64, T[], Int32, Int32) |
已淘汰.
先從輸入陣列中指定的位置開始讀取位元組,再將指定數目的實值型別寫入至記憶體位置。 |
WriteSpan<T>(UInt64, ReadOnlySpan<T>) |
已淘汰.
將值型別從唯讀範圍寫入記憶體位置。 |