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 je nutné nastavit tento ukazatel null .

Atributy

Výjimky

Metoda Initialize nebyla volána.

Poznámky

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

AcquirePointer volá metodu SafeHandle.DangerousAddRef a zveřejňuje 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 ukazatel (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 všechny kontroly hranic s tímto ukazatelem.

Platí pro