SafeBuffer.AcquirePointer(Byte*) SafeBuffer.AcquirePointer(Byte*) SafeBuffer.AcquirePointer(Byte*) Method



이 API는 CLS 규격이 아닙니다.

SafeBuffer 개체에서 메모리 블록에 대한 포인터를 가져옵니다.Obtains a pointer from a SafeBuffer object for a block of memory.

 void AcquirePointer(System::Byte* % pointer);
public void AcquirePointer (ref byte* pointer);
member this.AcquirePointer : Byte* -> unit

매개 변수


SafeBuffer 개체 내부에서 포인터를 받기 위해 참조에서 전달하는 바이트 포인터입니다.A byte pointer, passed by reference, to receive the pointer from within the SafeBuffer object. 이 메서드를 호출하기 전에 이 포인터를 null로 설정해야 합니다.You must set this pointer to null before you call this method.


Initialize 메서드가 호출되지 않았습니다.The Initialize method has not been called.


AcquirePointer 반환, 확인 하 여 범위 검사를 수행 해야 합니다 pointer 매개 변수는 null합니다.When AcquirePointer returns, you should perform bounds checking by verifying that the pointer parameter is null. 없는 경우 null를 호출 해야 합니다는 SafeBuffer.ReleasePointer 제약이 있는 실행 지역 (CER)에 메서드.If it is not null, you must call the SafeBuffer.ReleasePointer method in a constrained execution region (CER).

AcquirePointer 호출 된 SafeHandle.DangerousAddRef 메서드 포인터를 노출 합니다.AcquirePointer calls the SafeHandle.DangerousAddRef method and exposes the pointer. 달리는 Read 메서드인 포인터의 현재 위치를 변경 하지 않습니다.Unlike the Read method, it does not change the current position of the pointer.

다음 예제에서는 AcquirePointer 메서드를 사용 하는 방법을 보여 줍니다.The following example demonstrates how to use the AcquirePointer method:

byte* pointer = null;  
try {  
    MySafeBuffer.AcquirePointer(ref pointer);  
    // Use pointer here, with your own bounds checking.  
finally {  
    if (pointer != null)  

캐스팅 하는 경우 pointer (되는 바이트에 대 한 포인터)를 다른 형식 (T *) 포인터로 포인터 정렬 문제가 발생할 수 있습니다.If you cast pointer (which is a pointer to a byte) as a pointer to a different type (T*), you may have pointer alignment issues.

이 포인터를 사용 하 여 검사 하는 모든 범위에 대 한 책임을 수행 해야 합니다.You must take responsibility for all bounds checking with this pointer.

적용 대상