Compartir vía


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 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 un tipo diferente (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