SafeBuffer.AcquirePointer(Byte*) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per