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.

public:
 void AcquirePointer(System::Byte* % pointer);
[System.CLSCompliant(false)]
public void AcquirePointer (ref byte* pointer);
member this.AcquirePointer :  -> unit
パラメーター
pointer
Byte*

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.

次の exampledemonstrates を使用する方法、AcquirePointerメソッド。The following exampledemonstrates how to use the AcquirePointer method:

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

キャストする場合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.

適用対象