Freigeben über


OfferVirtualMemory-Funktion (memoryapi.h)

Gibt an, dass die in einem Bereich von Speicherseiten enthaltenen Daten von der Anwendung nicht mehr benötigt werden und vom System bei Bedarf verworfen werden können.

Die angegebenen Seiten werden als nicht zugänglich markiert, aus dem Prozessarbeitssatz entfernt und nicht in die Auslagerungsdatei geschrieben.

Rufen Sie ReclaimVirtualMemory auf, um die angebotenen Seiten später zurückzufordern.

Syntax

DWORD OfferVirtualMemory(
  [in] PVOID          VirtualAddress,
  [in] SIZE_T         Size,
  [in] OFFER_PRIORITY Priority
);

Parameter

[in] VirtualAddress

Seitenbündige Startadresse des zu bietenden Arbeitsspeichers.

[in] Size

Größe der zu bietenden Speicherregion in Bytes. Die Größe muss ein ganzzahliges Vielfaches der Systemseitengröße sein.

[in] Priority

Priority gibt an, wie wichtig der angebotene Arbeitsspeicher für die Anwendung ist. Eine höhere Priorität erhöht die Wahrscheinlichkeit, dass der angebotene Arbeitsspeicher intakt zurückgewonnen werden kann, wenn ReclaimVirtualMemory aufgerufen wird. Das System verwirft in der Regel Arbeitsspeicher mit niedrigerer Priorität, bevor Arbeitsspeicher mit höherer Priorität verworfen wird. Priorität muss einer der folgenden Werte sein.

Wert Bedeutung
VMOfferPriorityVeryLow
0x00000001
Der angebotene Arbeitsspeicher hat eine sehr niedrige Priorität und sollte der erste verworfen werden.
VMOfferPriorityLow
0x00000002
Der angebotene Arbeitsspeicher hat eine niedrige Priorität.
VMOfferPriorityBelowNormal
0x00000003
Der angebotene Arbeitsspeicher liegt unter der normalen Priorität.
VMOfferPriorityNormal
0x00000004
Der angebotene Arbeitsspeicher hat für die Anwendung normale Priorität und sollte der zuletzt verworfene sein.

Rückgabewert

ERROR_SUCCESS bei Erfolgreicher Ausführung; Andernfalls ein Systemfehlercode .

Hinweise

Rufen Sie ReclaimVirtualMemory auf, um die angebotenen Seiten zurückzugeben. Die Daten auf wiedergewonnenen Seiten wurden möglicherweise verworfen. In diesem Fall ist der Inhalt des Speicherbereichs undefiniert und muss von der Anwendung neu geschrieben werden.

Rufen Sie OfferVirtualMemory nicht auf, um gesperrten virtuellen Arbeitsspeicher anzubieten. Dadurch wird der angegebene Seitenbereich entsperrt.

Beachten Sie, dass das Anbieten und Wiederherstellen von virtuellem Arbeitsspeicher mit der Verwendung der MEM_RESET- und MEM_RESET_UNDO Speicherzuordnungsflags vergleichbar ist, mit dem Unterschied, dass OfferVirtualMemory den Arbeitsspeicher aus dem Prozessarbeitssatz entfernt und den Zugriff auf die angebotenen Seiten beschränkt, bis sie wieder abgerufen werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1 Update [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 Update [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile memoryapi.h (einschließlich Windows.h, Memoryapi.h)
Bibliothek onecore.lib
DLL Kernel32.dll

Siehe auch

DiscardVirtualMemory

Speicherverwaltungsfunktionen

ReclaimVirtualMemory

Funktionen des virtuellen Speichers

VirtualAlloc

VirtualFree

VirtualLock

Virtualquery