SafeBuffer.AcquirePointer(Byte*) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.