SafeBuffer Класс

Определение

Предупреждение

Этот API устарел.

Предоставляет управляемый буфер памяти, который может использоваться для чтения и записи.Provides a controlled memory buffer that can be used for reading and writing. Попытки обращения к памяти за пределами управляемого буфера (опустошение или переполнение) вызывают исключения.Attempts to access memory outside the controlled buffer (underruns and overruns) raise exceptions.

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
type SafeBuffer = class
    inherit SafeHandle
type SafeBuffer = class
    inherit SafeHandleZeroOrMinusOneIsInvalid
type SafeBuffer = class
    inherit SafeHandleZeroOrMinusOneIsInvalid
    interface IDisposable
Public MustInherit Class SafeBuffer
Inherits SafeHandle
Public MustInherit Class SafeBuffer
Inherits SafeHandleZeroOrMinusOneIsInvalid
Наследование
SafeBuffer
Наследование
Наследование
Производный
Атрибуты
Реализации

Комментарии

Перед использованием любого экземпляра SafeBufferнеобходимо вызвать метод SafeBuffer.Initialize.You must call the SafeBuffer.Initialize method before you use any instance of SafeBuffer. Чтобы избежать состязания при хранении экземпляра объекта SafeBuffer в статической переменной, следует использовать один из следующих подходов:To avoid races when you store an instance of a SafeBuffer object in a static variable, you should use one of the following approaches:

Примечание

Присваивания в статическом конструкторе класса неявно заблокированы.Assignments in a static class constructor are implicitly locked.

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

SafeBuffer(Boolean)

Создает новый экземпляр класса SafeBuffer и указывает, должен ли быть дескриптор буфера надежно освобожден.Creates a new instance of the SafeBuffer class, and specifies whether the buffer handle is to be reliably released.

Поля

handle

Определяет инкапсулируемый дескриптор.Specifies the handle to be wrapped.

(Унаследовано от SafeHandle)

Свойства

ByteLength

Получает размер буфера (в байтах).Gets the size of the buffer, in bytes.

IsClosed

Возвращает значение, показывающее, является ли дескриптор закрытым.Gets a value indicating whether the handle is closed.

(Унаследовано от SafeHandle)
IsInvalid

Получает значение, указывающее, является ли дескриптор недействительным.Gets a value that indicates whether the handle is invalid.

Методы

AcquirePointer(Byte*)

Получает из объекта SafeBuffer указатель для блока памяти.Obtains a pointer from a SafeBuffer object for a block of memory.

Close()

Помечает дескриптор для освобождения самого дескриптора и соответствующих ресурсов.Marks the handle for releasing and freeing resources.

(Унаследовано от SafeHandle)
DangerousAddRef(Boolean)

Вручную увеличивает счетчик ссылок для экземпляров SafeHandle.Manually increments the reference counter on SafeHandle instances.

(Унаследовано от SafeHandle)
DangerousGetHandle()

Возвращает значение поля handle.Returns the value of the handle field.

(Унаследовано от SafeHandle)
DangerousRelease()

Вручную уменьшает счетчик ссылок для экземпляра SafeHandle.Manually decrements the reference counter on a SafeHandle instance.

(Унаследовано от SafeHandle)
Dispose()

Освобождает все ресурсы, используемые классом SafeHandle.Releases all resources used by the SafeHandle class.

(Унаследовано от SafeHandle)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые классом SafeHandle, определяя, нужно ли выполнять обычную операцию удаления.Releases the unmanaged resources used by the SafeHandle class specifying whether to perform a normal dispose operation.

(Унаследовано от SafeHandle)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
Initialize(UInt32, UInt32)

Задает размер выделяемого буфера памяти, используя указанное количество элементов и размер элемента.Specifies the allocation size of the memory buffer by using the specified number of elements and element size. Данный метод необходимо вызвать перед использованием экземпляра SafeBuffer.You must call this method before you use the SafeBuffer instance.

Initialize(UInt64)

Определяет размер выделяемой области памяти (в байтах).Defines the allocation size of the memory region in bytes. Данный метод необходимо вызвать перед использованием экземпляра SafeBuffer.You must call this method before you use the SafeBuffer instance.

Initialize<T>(UInt32)

Определяет размер выделяемой области памяти путем указания количества значений и их типа.Defines the allocation size of the memory region by specifying the number of value types. Данный метод необходимо вызвать перед использованием экземпляра SafeBuffer.You must call this method before you use the SafeBuffer instance.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
Read<T>(UInt64)

Считывает из памяти тип значения с указанным смещением.Reads a value type from memory at the specified offset.

ReadArray<T>(UInt64, T[], Int32, Int32)

Считывает из памяти указанное количество типов значений, начиная указанного смещения, и записывает их в массив, начиная с указанного индекса.Reads the specified number of value types from memory starting at the offset, and writes them into an array starting at the index.

ReleaseHandle()

При переопределении в производном классе выполняет код, необходимый для освобождения дескриптора.When overridden in a derived class, executes the code required to free the handle.

(Унаследовано от SafeHandle)
ReleasePointer()

Высвобождает указатель, полученный методом AcquirePointer(Byte*).Releases a pointer that was obtained by the AcquirePointer(Byte*) method.

SetHandle(IntPtr)

Определяет дескриптор для заданного ранее существующего дескриптора.Sets the handle to the specified pre-existing handle.

(Унаследовано от SafeHandle)
SetHandleAsInvalid()

Помечает дескриптор как больше не используемый.Marks a handle as no longer used.

(Унаследовано от SafeHandle)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)
Write<T>(UInt64, T)

Записывает тип значения в память в указанном расположении.Writes a value type to memory at the given location.

WriteArray<T>(UInt64, T[], Int32, Int32)

Записывает указанное количество типов значений в указанное расположение в памяти, считывая байты входного массива, начиная с указанного расположения.Writes the specified number of value types to a memory location by reading bytes starting from the specified location in the input array.

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