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 的非托管资源,该类指定是否执行正常释放操作。 (继承自 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>) |
已过时.
将值类型从只读范围写入内存位置。 |