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

Wenn AcquirePointer sie zurückgegeben werden, sollten Sie die Begrenzungsüberprüfung durchführen, indem Sie überprüfen, ob der pointer Parameter ist null. Andernfalls nullmü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. Read Im Gegensatz zur -Methode ändert sie nicht die aktuelle Position des Zeigers.

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 für alle Grenzen übernehmen, die mit diesem Zeiger überprüft werden.

Gilt für: