Freigeben über


IMemoryBuffer Schnittstelle

Definition

Stellt einen Speicherpuffer mit Verweisanzahl dar.

public interface class IMemoryBuffer : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(4223982890, 9307, 4580, 175, 152, 104, 148, 35, 38, 12, 248)]
struct IMemoryBuffer : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(4223982890, 9307, 4580, 175, 152, 104, 148, 35, 38, 12, 248)]
public interface IMemoryBuffer : System.IDisposable
Public Interface IMemoryBuffer
Implements IDisposable
Abgeleitet
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Hinweise

IMemoryBuffer bietet ein Interoperabilitätsprotokoll zwischen dem nicht verwalteten, direkten Speicherzugriff der nativen Plattform und der referenzgezählten, möglicherweise über Müll gesammelten Umgebung, in der verwaltete Objekte gehostet werden. Das System des verwalteten Typs erfordert eine deterministische Lebensdauer für alle Typen. Diese Lebensdauer ist manchmal implizit (Werttypen werden nach Wert kopiert) oder explizit (Verweistypen werden referenzgezählt). Aus Leistungsgründen muss Code jedoch gelegentlich mit Typen interagieren, die nicht in beide Modelle passen.

Ein häufiges Beispiel, das vom IMemoryBuffer-Design behandelt wird, ist der Zugriff auf einen direkten Zeiger auf einen Speicherblock, in dem Leistungseinschränkungen erfordern, dass der Arbeitsspeicher nicht kopiert wird. Die IMemoryBuffer-Abstraktion kapselt einen solchen direkten Speicherzeiger in einer Reihe von Referenzzählungsobjekten, die den expliziten Erwerb des rohen Speicherzeigers überschichtet und dessen deterministische Freigabe zulassen.

Methoden

CreateReference()

Gibt ein neues Windows-Runtime-Objekt zurück, das die IMemoryBufferReference-Schnittstelle implementiert.

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

Gilt für:

Weitere Informationen