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 : 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 클래스의 새 인스턴스를 만들고 버퍼 핸들이 안정적으로 해제될지 여부를 지정합니다.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

메서드

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.

보안

SecurityCriticalAttribute
직접 실행 호출자에 대 한 완전 신뢰가 필요 합니다.requires full trust for the immediate caller. 이 멤버는 부분적으로 신뢰할 수 있는 또는 투명 코드에서 사용할 수 없습니다.This member cannot be used by partially trusted or transparent code.

적용 대상