SafeBuffer.AcquirePointer(Byte*) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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).
AcquirePointer SafeHandle.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.