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.

  • Создайте локальную переменную, инициализируйте SafeBufferи назначьте SafeBuffer статическую переменную, например с помощью Interlocked.CompareExchange метода.

Note

Назначения в конструкторе статических классов неявно заблокированы.

Конструкторы

Имя Описание
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>)
Устаревшие.

Записывает типы значений из диапазона только для чтения в расположение памяти.

Применяется к