SafeBuffer.AcquirePointer(Byte*) Metoda

Definice

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Získá ukazatel z objektu SafeBuffer pro blok paměti.

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

Parametry

pointer
Byte*

Bajtový ukazatel předaný odkazem pro příjem ukazatele z objektu SafeBuffer . Před voláním této metody musíte tento ukazatel nastavit na null .

Atributy

Výjimky

Metoda Initialize nebyla volána.

Poznámky

Při AcquirePointer návratu byste měli provést kontrolu hranic ověřením, že pointer parametr je null. Pokud tomu tak není null, musíte metodu SafeBuffer.ReleasePointer volat v oblasti omezeného spuštění (CER).

AcquirePointer zavolá metodu SafeHandle.DangerousAddRef a zveřejní ukazatel.

Následující příklad ukazuje, jak použít metodu 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();  
    }  

Pokud přetypujete pointer (což je ukazatel na bajt) jako ukazatel na jiný typ (T*), může dojít k problémům se zarovnáním ukazatele.

Musíte převzít odpovědnost za kontrolu všech hranic pomocí tohoto ukazatele.

Platí pro