SafeBuffer.AcquirePointer(Byte*) Método

Definición

Importante

Esta API no es conforme a CLS.

Obtiene un puntero de un objeto para un SafeBuffer 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 bytes, pasado por referencia, para recibir el puntero desde dentro del SafeBuffer objeto . Debe establecer este puntero en null antes de llamar a este método.

Atributos

Excepciones

No se ha llamado al Initialize método .

Comentarios

Cuando AcquirePointer se devuelve, debe realizar comprobaciones 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