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之前,必须调用 SafeBuffer.Initialize 方法。 为了避免在静态变量中存储对象的实例 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 类所使用的非托管资源,指定是否执行常规释放操作。 (继承自 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>) |
已过时.
将值类型从只读范围写入内存位置。 |