SafeBuffer.AcquirePointer(Byte*) Metodo

Definizione

Importante

Questa API non è conforme a CLS.

Ottiene un puntatore da un oggetto SafeBuffer per un blocco di memoria.

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

Parametri

pointer
Byte*

Puntatore di byte, passato per riferimento, per ricevere il puntatore dall'interno dell'oggetto SafeBuffer. È necessario impostare questo puntatore a null prima di chiamare questo metodo.

Attributi

Eccezioni

Il metodo Initialize non è stato chiamato.

Commenti

Quando AcquirePointer termina, è necessario eseguire il controllo dei limiti verificando che il pointer parametro sia null. In caso contrario null, è necessario chiamare il SafeBuffer.ReleasePointer metodo in un'area di esecuzione vincolata .

AcquirePointer chiama il SafeHandle.DangerousAddRef metodo ed espone il puntatore.

Nell'esempio seguente viene illustrato come usare il AcquirePointer metodo :

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

Se si esegue il cast pointer (che è un puntatore a un byte) come puntatore a un tipo diverso (T*), potrebbero verificarsi problemi di allineamento del puntatore.

È necessario assumersi la responsabilità di tutti i limiti di controllo con questo puntatore.

Si applica a