SafeBuffer.AcquirePointer(Byte*) メソッド

定義

重要

この API は CLS 準拠ではありません。

SafeBuffer オブジェクトからメモリ ブロックのポインターを取得します。

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

パラメーター

pointer
Byte*

SafeBuffer オブジェクト内からポインターを受け取るための参照渡しされるバイト ポインター。 このポインターは、このメソッドを呼び出す前に null に設定する必要があります。

属性

例外

Initialize メソッドが呼び出されていません。

注釈

が返された場合AcquirePointerは、 パラメーターnullが であることを確認して境界チェックを実行するpointer必要があります。 でない null場合は、制約付き実行領域 (CER) で メソッドを呼び出す SafeBuffer.ReleasePointer 必要があります。

AcquirePointer は メソッドを SafeHandle.DangerousAddRef 呼び出し、ポインターを公開します。

次の例では、 メソッドの使用方法を AcquirePointer 示します。

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

(バイトへのポインター) を別の型 (T*) へのポインターとしてキャスト pointer すると、ポインターの配置に問題がある可能性があります。

このポインターを使用して、すべての境界チェックの責任を負う必要があります。

適用対象