SafeBuffer.AcquirePointer(Byte*) Método

Definición

Importante

Esta API no es conforme a CLS.

Obtiene un puntero de un objeto SafeBuffer para un bloque de memoria.

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

Parámetros

pointer
Byte*

Puntero de byte, pasado por referencia, para recibir el puntero desde dentro del objeto SafeBuffer. Debe establecer este puntero en null antes de llamar a este método.

Atributos

Excepciones

No se ha llamado al método Initialize.

Comentarios

Cuando AcquirePointer se devuelve, debe realizar la comprobación de límites comprobando que el pointer parámetro es null. Si no nulles , debe llamar al SafeBuffer.ReleasePointer método en una región de ejecución restringida (CER).

AcquirePointer llama al SafeHandle.DangerousAddRef método y expone el puntero.

En el ejemplo siguiente se muestra cómo usar el AcquirePointer método :

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

Si convierte pointer (que es un puntero a un byte) como puntero a otro tipo (T*), es posible que tenga problemas de alineación del puntero.

Debe asumir la responsabilidad de todas las comprobaciones de límites con este puntero.

Se aplica a