SafeBuffer Klasse
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.
Achtung
SafeBuffer may be unavailable in future releases.
Stellt einen kontrollierten Speicherpuffer bereit, der zum Lesen und Schreiben verwendet werden kann. Versuche, außerhalb des kontrollierten Puffers (Unterläufe und Überläufe) auf Arbeitsspeicher zuzugreifen, lösen Ausnahmen aus.
public ref class SafeBuffer abstract : System::Runtime::InteropServices::SafeHandle
public ref class SafeBuffer abstract : Microsoft::Win32::SafeHandles::SafeHandleZeroOrMinusOneIsInvalid
[System.Security.SecurityCritical]
public abstract class SafeBuffer : System.Runtime.InteropServices.SafeHandle
public abstract class SafeBuffer : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
[System.Security.SecurityCritical]
public abstract class SafeBuffer : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
[System.Security.SecurityCritical]
[System.Obsolete("SafeBuffer may be unavailable in future releases.")]
public abstract class SafeBuffer : System.Runtime.InteropServices.SafeHandle
[<System.Security.SecurityCritical>]
type SafeBuffer = class
inherit SafeHandle
type SafeBuffer = class
inherit SafeHandleZeroOrMinusOneIsInvalid
[<System.Security.SecurityCritical>]
type SafeBuffer = class
inherit SafeHandleZeroOrMinusOneIsInvalid
[<System.Security.SecurityCritical>]
[<System.Obsolete("SafeBuffer may be unavailable in future releases.")>]
type SafeBuffer = class
inherit SafeHandle
Public MustInherit Class SafeBuffer
Inherits SafeHandle
Public MustInherit Class SafeBuffer
Inherits SafeHandleZeroOrMinusOneIsInvalid
- Vererbung
- Vererbung
- Vererbung
- Abgeleitet
- Attribute
Hinweise
Sie müssen die SafeBuffer.Initialize Methode aufrufen, bevor Sie eine Instanz von SafeBuffer. Um Rennen zu vermeiden, wenn Sie eine Instanz eines SafeBuffer Objekts in einer statischen Variablen speichern, sollten Sie eine der folgenden Ansätze verwenden:
Erstellen Sie beim Veröffentlichen der Sperre eine SafeBufferSperre.
Erstellen Sie eine lokale Variable, initialisieren Sie die SafeBufferVariable, und weisen Sie SafeBuffer sie dann der statischen Variablen zu, z. B. mithilfe der Interlocked.CompareExchange Methode.
Note
Zuordnungen in einem statischen Klassenkonstruktor sind implizit gesperrt.
Konstruktoren
| Name | Beschreibung |
|---|---|
| SafeBuffer(Boolean) |
Veraltet.
Erstellt eine neue Instanz der SafeBuffer Klasse und gibt an, ob der Pufferhandle zuverlässig freigegeben werden soll. |
Felder
| Name | Beschreibung |
|---|---|
| handle |
Veraltet.
Gibt das Handle an, das umschlossen werden soll. (Geerbt von SafeHandle) |
Eigenschaften
| Name | Beschreibung |
|---|---|
| ByteLength |
Veraltet.
Ruft die Größe des Puffers in Byte ab. |
| IsClosed |
Veraltet.
Ruft einen Wert ab, der angibt, ob das Handle geschlossen ist. (Geerbt von SafeHandle) |
| IsInvalid |
Veraltet.
Ruft einen Wert ab, der angibt, ob das Handle ungültig ist. |
| IsInvalid |
Veraltet.
Ruft einen Wert ab, der angibt, ob das Handle ungültig ist. (Geerbt von SafeHandleZeroOrMinusOneIsInvalid) |
Methoden
| Name | Beschreibung |
|---|---|
| AcquirePointer(Byte*) |
Veraltet.
Ruft einen Zeiger aus einem SafeBuffer Objekt für einen Speicherblock ab. |
| Close() |
Veraltet.
Markiert das Handle zum Freigeben und Freigeben von Ressourcen. (Geerbt von SafeHandle) |
| DangerousAddRef(Boolean) |
Veraltet.
Erhöht den Verweiszähler manuell auf SafeHandle Instanzen. (Geerbt von SafeHandle) |
| DangerousGetHandle() |
Veraltet.
Gibt den Wert des handle Felds zurück. (Geerbt von SafeHandle) |
| DangerousRelease() |
Veraltet.
Erhöht manuell den Verweiszähler für eine SafeHandle Instanz. (Geerbt von SafeHandle) |
| Dispose() |
Veraltet.
Gibt alle Ressourcen frei, die von der SafeHandle-Klasse verwendet werden. (Geerbt von SafeHandle) |
| Dispose(Boolean) |
Veraltet.
Gibt die von der Klasse verwendeten nicht verwalteten Ressourcen frei, die SafeHandle angeben, ob ein normaler Dispose-Vorgang ausgeführt werden soll. (Geerbt von SafeHandle) |
| Equals(Object) |
Veraltet.
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Veraltet.
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Veraltet.
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| Initialize(UInt32, UInt32) |
Veraltet.
Gibt die Zuordnungsgröße des Speicherpuffers mithilfe der angegebenen Anzahl von Elementen und Elementgrößen an. Sie müssen diese Methode aufrufen, bevor Sie die SafeBuffer Instanz verwenden. |
| Initialize(UInt64) |
Veraltet.
Definiert die Zuordnungsgröße des Speicherbereichs in Byte. Sie müssen diese Methode aufrufen, bevor Sie die SafeBuffer Instanz verwenden. |
| Initialize<T>(UInt32) |
Veraltet.
Definiert die Zuordnungsgröße des Speicherbereichs, indem die Anzahl der Werttypen angegeben wird. Sie müssen diese Methode aufrufen, bevor Sie die SafeBuffer Instanz verwenden. |
| MemberwiseClone() |
Veraltet.
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| Read<T>(UInt64) |
Veraltet.
Liest einen Werttyp aus dem Arbeitsspeicher im angegebenen Offset. |
| ReadArray<T>(UInt64, T[], Int32, Int32) |
Veraltet.
Liest die angegebene Anzahl von Werttypen aus dem Arbeitsspeicher ab dem Offset und schreibt sie in ein Array, das am Index beginnt. |
| ReadSpan<T>(UInt64, Span<T>) |
Veraltet.
Liest Werttypen aus dem Arbeitsspeicher ab dem Offset und schreibt sie in einen Bereich. Die Anzahl der Werttypen, die gelesen werden sollen, wird durch die Länge der Spanne bestimmt. |
| ReleaseHandle() |
Veraltet.
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der code ausgeführt, der zum Freigeben des Handles erforderlich ist. (Geerbt von SafeHandle) |
| ReleasePointer() |
Veraltet.
Gibt einen Zeiger frei, der von der AcquirePointer(Byte*) Methode abgerufen wurde. |
| SetHandle(IntPtr) |
Veraltet.
Legt den Handle auf den angegebenen vordefinierten Handle fest. (Geerbt von SafeHandle) |
| SetHandleAsInvalid() |
Veraltet.
Markiert einen Handle als nicht mehr verwendet. (Geerbt von SafeHandle) |
| ToString() |
Veraltet.
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| Write<T>(UInt64, T) |
Veraltet.
Schreibt einen Werttyp in den Speicher an dem angegebenen Speicherort. |
| WriteArray<T>(UInt64, T[], Int32, Int32) |
Veraltet.
Schreibt die angegebene Anzahl von Werttypen in einen Speicherspeicherort, indem Bytes von der angegebenen Position im Eingabearray gelesen werden. |
| WriteSpan<T>(UInt64, ReadOnlySpan<T>) |
Veraltet.
Schreibt die Werttypen aus einer schreibgeschützten Spanne in einen Speicherspeicherort. |