SafeBuffer.AcquirePointer(Byte*) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 null
ist, 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.