Early Preview
This is currently very much a preview. Please feel free to try things out,
but don't be upset if anything is not yet working. Feedback is welcome over on our
GitHub Dicussions page.
class System.​Runtime.​InteropServices.​SafeBuffer
Assembly: System.Runtime
Inheritance: object → ConstrainedExecution.CriticalFinalizerObject → SafeHandle → Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid → SafeBuffer
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.
Fields and Constants
protected
nint
handle
Specifies the handle to be wrapped.
Properties
public
ulong
ByteLength
Gets the size of the buffer, in bytes.
public
bool
IsInvalid
Gets a value that indicates whether the handle is invalid.
public
bool
IsClosed
Gets a value indicating whether the handle is closed.
Methods
public
void
Initialize​(uint numElements,
uint sizeOfEachElement)
numElements
The number of elements in the buffer.
sizeOfEachElement
The size of each element in the buffer.
Specifies the allocation size of the memory buffer by using the specified number of elements and element size. You must call this method before you use the <see cref="T:System.Runtime.InteropServices.SafeBuffer" /> instance.
public
void
Initialize​(ulong numBytes)
numBytes
The number of bytes in the buffer.
Defines the allocation size of the memory region in bytes. You must call this method before you use the <see cref="T:System.Runtime.InteropServices.SafeBuffer" /> instance.
public
void
Initialize​(uint numElements)
public
void
ReadArray​(ulong byteOffset,
T[] array,
int index,
int count)
public
void
ReleasePointer​()
Releases a pointer that was obtained by the <see cref="M:System.Runtime.InteropServices.SafeBuffer.AcquirePointer(System.Byte*@)" /> method.
public
void
WriteArray​(ulong byteOffset,
T[] array,
int index,
int count)
Marks the handle for releasing and freeing resources.
public
nint
DangerousGetHandle​()
Inherited from SafeHandle
Returns An <see cref="T:System.IntPtr" /> representing the value of the <see cref="F:System.Runtime.InteropServices.SafeHandle.handle" /> field. If the handle has been marked invalid with <see cref="M:System.Runtime.InteropServices.SafeHandle.SetHandleAsInvalid" /> , this method still returns the original handle value, which can be a stale value.
Returns the value of the <see cref="F:System.Runtime.InteropServices.SafeHandle.handle" /> field.
Manually decrements the reference counter on a <see cref="T:System.Runtime.InteropServices.SafeHandle" /> instance.
Releases all resources used by the <see cref="T:System.Runtime.InteropServices.SafeHandle" /> class.
protected
void
Dispose​(bool disposing)
Inherited from SafeHandle
disposing
<see langword="true" /> for a normal dispose operation; <see langword="false" /> to finalize the handle.
Releases the unmanaged resources used by the <see cref="T:System.Runtime.InteropServices.SafeHandle" /> class specifying whether to perform a normal dispose operation.
Frees all resources associated with the handle.
protected
bool
ReleaseHandle​()
Inherited from SafeHandle
Returns <see langword="true" /> if the handle is released successfully; otherwise, in the event of a catastrophic failure, <see langword="false" /> . In this case, it generates a releaseHandleFailed Managed Debugging Assistant.
When overridden in a derived class, executes the code required to free the handle.
protected
void
SetHandle​(nint handle)
Inherited from SafeHandle
handle
The pre-existing handle to use.
Sets the handle to the specified pre-existing handle.
Marks a handle as no longer used.
public
bool
Equals​(object obj)
Inherited from object
obj
The object to compare with the current object.
Returns <see langword="true" /> if the specified object is equal to the current object; otherwise, <see langword="false" /> .
Determines whether the specified object is equal to the current object.
public
int
GetHashCode​()
Inherited from object
Returns A hash code for the current object.
Serves as the default hash function.
public
Type
GetType​()
Inherited from object
Returns The exact runtime type of the current instance.
Gets the <see cref="T:System.Type" /> of the current instance.
protected
object
MemberwiseClone​()
Inherited from object
Returns A shallow copy of the current <see cref="T:System.Object" /> .
Creates a shallow copy of the current <see cref="T:System.Object" /> .
public
string
ToString​()
Inherited from object
Returns A string that represents the current object.
Returns a string that represents the current object.