SafeBuffer.AcquirePointer(Byte*) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Belangrijk
Deze API is niet CLS-conform.
Hiermee haalt u een aanwijzer op van een SafeBuffer object voor een blok geheugen.
public:
void AcquirePointer(System::Byte* % pointer);
[System.CLSCompliant(false)]
public void AcquirePointer(ref byte* pointer);
[<System.CLSCompliant(false)>]
member this.AcquirePointer : Byte* -> unit
Parameters
- pointer
- Byte*
Een byte-aanwijzer, doorgegeven door verwijzing, om de aanwijzer vanuit het SafeBuffer object te ontvangen. U moet deze aanwijzer null instellen voordat u deze methode aanroept.
- Kenmerken
Uitzonderingen
De Initialize methode is niet aangeroepen.
Opmerkingen
Wanneer AcquirePointer u terugkeert, moet u de begrenzing controleren door te controleren of de pointer parameter is null. Als dit niet nullhet is, moet u de SafeBuffer.ReleasePointer methode aanroepen in een beperkte uitvoeringsregio (CER).
AcquirePointer roept de SafeHandle.DangerousAddRef methode aan en toont de aanwijzer.
In het volgende voorbeeld ziet u hoe u de AcquirePointer methode gebruikt:
byte* pointer = null;
RuntimeHelpers.PrepareConstrainedRegions();
try {
MySafeBuffer.AcquirePointer(ref pointer);
// Use pointer here, with your own bounds checking.
}
finally {
if (pointer != null)
MySafeBuffer.ReleasePointer();
}
Als u pointer cast (een aanwijzer naar een byte) als aanwijzer naar een ander type (T*), hebt u mogelijk problemen met de uitlijning van de aanwijzer.
U moet de verantwoordelijkheid nemen voor alle grenzen die met deze aanwijzer worden gecontroleerd.