Freigeben über


SafeBuffer.AcquirePointer(Byte*) Methode

Definition

Wichtig

Diese API ist nicht CLS-kompatibel.

Ruft einen Zeiger aus einem SafeBuffer-Objekt für einen Speicherblock ab.

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

Parameter

pointer
Byte*

Ein als Verweis übergebener Bytezeiger zum Abrufen des Zeigers aus dem SafeBuffer-Objekt. Sie müssen diesen Zeiger auf null festlegen, bevor diese Methode aufgerufen werden kann.

Attribute

Ausnahmen

Die Initialize-Methode wurde nicht aufgerufen.

Hinweise

Bei AcquirePointer Rückgaben sollten Sie die Begrenzungsüberprüfung durchführen, indem Sie überprüfen, ob der pointer Parameter ist null. Wenn es nicht nullist, müssen Sie die SafeBuffer.ReleasePointer -Methode in einer eingeschränkten Ausführungsregion (Cer) aufrufen.

AcquirePointer ruft die SafeHandle.DangerousAddRef -Methode auf und macht den Zeiger verfügbar.

Im folgenden Beispiel wird die Verwendung der AcquirePointer -Methode veranschaulicht:

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

Wenn Sie (ein Zeiger auf ein Byte) als Zeiger auf einen anderen Typ (T*) umwandeln pointer , treten möglicherweise Probleme mit der Zeigerausrichtung auf.

Sie müssen die Verantwortung dafür übernehmen, dass alle Grenzen mit diesem Zeiger überprüft werden.

Gilt für: