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.Initialize之前,必须调用SafeBuffer该方法。 若要避免在静态变量中存储对象的实例 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>)
已过时.

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

适用于