Udostępnij za pośrednictwem


SafeBuffer.AcquirePointer(Byte*) Metoda

Definicja

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 nulljest , 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.

Dotyczy