SafeBuffer.AcquirePointer(Byte*) Metod

Definition

Viktigt!

Detta API uppfyller inte CLS.

Hämtar en pekare från ett SafeBuffer objekt för ett minnesblock.

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

Parametrar

pointer
Byte*

En bytepekare, som skickas med referens, för att ta emot pekaren inifrån SafeBuffer objektet. Du måste ange den här pekaren till null innan du anropar den här metoden.

Attribut

Undantag

Metoden Initialize har inte anropats.

Kommentarer

När AcquirePointer returnerar bör du utföra gränskontroll genom att kontrollera att parametern pointer är null. Om det inte nullär det måste du anropa SafeBuffer.ReleasePointer metoden i en begränsad körningsregion (CER).

AcquirePointer SafeHandle.DangerousAddRef anropar metoden och exponerar pekaren.

I följande exempel visas hur du använder AcquirePointer metoden:

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

Om du gjuter pointer (som är en pekare till en byte) som pekare till en annan typ (T*), kan det uppstå problem med pekarjustering.

Du måste ta ansvar för alla gränskontroller med den här pekaren.

Gäller för