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.

  • Создайте локальную переменную, инициализируйте 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>)
Устаревшие..

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

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