SafeBuffer 类

定义

注意

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
继承
继承
派生
属性

注解

在使用 的任何实例SafeBuffer之前,必须调用 SafeBuffer.Initialize 方法。 若要避免在静态变量中存储对象的实例 SafeBuffer 时发生争用,应使用以下方法之一:

注意

静态类构造函数中的分配是隐式锁定的。

构造函数

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 类所使用的非托管资源,指定是否执行常规释放操作。

(继承自 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>)
已过时.

将值类型从只读范围写入内存位置。

适用于