SafeBuffer.AcquirePointer(Byte*) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Uzyskuje wskaźnik z SafeBuffer obiektu dla bloku pamięci.
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*
Wskaźnik bajtów przekazywany przez odwołanie do odbierania wskaźnika z obiektu SafeBuffer . Należy ustawić ten wskaźnik na null
wartość przed wywołaniem tej metody.
- Atrybuty
Wyjątki
Metoda Initialize nie została wywołana.
Uwagi
Po AcquirePointer powrocie należy wykonać sprawdzanie granic, sprawdzając, czy pointer
parametr ma wartość null
. Jeśli tak nie null
jest , należy wywołać metodę SafeBuffer.ReleasePointer w regionie wykonywania ograniczonego (CER).
AcquirePointer wywołuje metodę SafeHandle.DangerousAddRef i uwidacznia wskaźnik.
W poniższym przykładzie pokazano, jak używać AcquirePointer metody:
byte* pointer = null;
RuntimeHelpers.PrepareConstrainedRegions();
try {
MySafeBuffer.AcquirePointer(ref pointer);
// Use pointer here, with your own bounds checking.
}
finally {
if (pointer != null)
MySafeBuffer.ReleasePointer();
}
Jeśli rzutujesz pointer
(czyli wskaźnik do bajtu) jako wskaźnik do innego typu (T*), może wystąpić problem z wyrównaniem wskaźnika.
Musisz wziąć odpowiedzialność za wszystkie ograniczenia sprawdzające ten wskaźnik.