Bagikan melalui


SafeBuffer.AcquirePointer(Byte*) Metode

Definisi

Penting

API ini bukan kompatibel CLS.

Mendapatkan penunjuk dari SafeBuffer objek untuk blok memori.

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

Parameter

pointer
Byte*

Penunjuk byte, diteruskan oleh referensi, untuk menerima penunjuk dari dalam SafeBuffer objek. Anda harus mengatur penunjuk ini ke null sebelum memanggil metode ini.

Atribut

Pengecualian

Metode Initialize belum dipanggil.

Keterangan

Saat AcquirePointer kembali, Anda harus melakukan pemeriksaan batas dengan memverifikasi bahwa pointer parameternya adalah null. Jika tidak null, Anda harus memanggil SafeBuffer.ReleasePointer metode di wilayah eksekusi yang dibatasi (CER).

AcquirePointerSafeHandle.DangerousAddRef memanggil metode dan mengekspos penunjuk.

Contoh berikut menunjukkan cara menggunakan AcquirePointer metode :

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

Jika Anda mentransmisikan pointer (yang merupakan penunjuk ke byte) sebagai penunjuk ke jenis yang berbeda (T*), Anda mungkin memiliki masalah perataan pointer.

Anda harus bertanggung jawab atas semua pemeriksaan batas dengan pointer ini.

Berlaku untuk