SafeBuffer SafeBuffer SafeBuffer SafeBuffer Class

Определение

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

Этот 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 : Microsoft::Win32::SafeHandles::SafeHandleZeroOrMinusOneIsInvalid
[System.Security.SecurityCritical]
[System.Obsolete("SafeBuffer may be unavailable in future releases.")]
public abstract class SafeBuffer : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
type SafeBuffer = class
    inherit SafeHandleZeroOrMinusOneIsInvalid
    interface IDisposable
Public MustInherit Class SafeBuffer
Inherits SafeHandleZeroOrMinusOneIsInvalid
Наследование
Производный
Атрибуты
Реализации

Комментарии

Необходимо вызвать SafeBuffer.Initialize метод перед использованием любого SafeBufferэкземпляра.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(Boolean) SafeBuffer(Boolean) SafeBuffer(Boolean)

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

Свойства

ByteLength ByteLength ByteLength ByteLength

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

IsClosed IsClosed IsClosed IsClosed

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

(Inherited from SafeHandle)
IsInvalid IsInvalid IsInvalid IsInvalid

Методы

AcquirePointer(Byte*) AcquirePointer(Byte*) AcquirePointer(Byte*) AcquirePointer(Byte*)

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

Close() Close() Close() Close()

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

(Inherited from SafeHandle)
DangerousAddRef(Boolean) DangerousAddRef(Boolean) DangerousAddRef(Boolean) DangerousAddRef(Boolean)

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

(Inherited from SafeHandle)
DangerousGetHandle() DangerousGetHandle() DangerousGetHandle() DangerousGetHandle()

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

(Inherited from SafeHandle)
DangerousRelease() DangerousRelease() DangerousRelease() DangerousRelease()

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

(Inherited from SafeHandle)
Dispose() Dispose() Dispose() Dispose()

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

(Inherited from SafeHandle)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

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

(Inherited from SafeHandle)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
Initialize(UInt32, UInt32) Initialize(UInt32, UInt32) Initialize(UInt32, UInt32) 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) Initialize(UInt64) Initialize(UInt64) 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) Initialize<T>(UInt32) Initialize<T>(UInt32) 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() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
Read<T>(UInt64) Read<T>(UInt64) Read<T>(UInt64) Read<T>(UInt64)

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

ReadArray<T>(UInt64, T[], Int32, Int32) ReadArray<T>(UInt64, T[], Int32, Int32) ReadArray<T>(UInt64, T[], Int32, Int32) 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() ReleaseHandle() ReleaseHandle() ReleaseHandle()

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

(Inherited from SafeHandle)
ReleasePointer() ReleasePointer() ReleasePointer() ReleasePointer()

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

SetHandle(IntPtr) SetHandle(IntPtr) SetHandle(IntPtr) SetHandle(IntPtr)

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

(Inherited from SafeHandle)
SetHandleAsInvalid() SetHandleAsInvalid() SetHandleAsInvalid() SetHandleAsInvalid()

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

(Inherited from SafeHandle)
ToString() ToString() ToString() ToString()

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

(Inherited from Object)
Write<T>(UInt64, T) Write<T>(UInt64, T) Write<T>(UInt64, T) Write<T>(UInt64, T)

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

WriteArray<T>(UInt64, T[], Int32, Int32) WriteArray<T>(UInt64, T[], Int32, Int32) WriteArray<T>(UInt64, T[], Int32, Int32) 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.

Поля

handle handle handle handle

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

(Inherited from SafeHandle)

Безопасность

SecurityCriticalAttribute
требуется полное доверие для немедленного вызывающего объекта.requires full trust for the immediate caller. Этот член не может использоваться частично доверенным или прозрачным кодом.This member cannot be used by partially trusted or transparent code.

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