Freigeben über


MmSecureVirtualMemoryEx-Funktion (ntddk.h)

Diese Routine überprüft den angeforderten Adressbereich und schützt den angegebenen Adressbereich davor, dass der Schutz restriktiver gestaltet und gelöscht wird.

Syntax

HANDLE MmSecureVirtualMemoryEx(
  PVOID  Address,
  SIZE_T Size,
  ULONG  ProbeMode,
  ULONG  Flags
);

Parameter

Address

Zeiger auf die Basisadresse zum Testen und Sichern.

Size

Gibt die Größe des zu sichernden Bereichs in Bytes an.

ProbeMode

Gibt den restriktivsten Seitenschutz an, der zulässig ist. Verwenden Sie PAGE_READWRITE, um anzugeben, dass der Adressbereich sowohl lesbar als auch schreibbar bleiben muss, oder verwenden Sie PAGE_READONLY, um anzugeben, dass der Adressbereich nur lesbar bleiben darf.

ProbeMode Bedeutung
PAGE_READWRITE Der Schutz kann nicht in PAGE_NOACCESS oder PAGE_READONLY geändert werden. Alle anderen Schutzänderungen sind zulässig.
PAGE_READONLY Der Schutz kann nicht in PAGE_NOACCESS geändert werden. Alle anderen Schutzänderungen sind zulässig.

Flags

Gibt mindestens eins der folgenden Flags an:

Flag Beschreibung
MM_SECURE_EXCLUSIVE Die Sicherung ist nur erfolgreich, wenn keine anderen Sicherungen bereits an der betreffenden VAD angeheftet sind.
MM_SECURE_NO_CHANGE Nach der Anwendung sind keine Schutzänderungen für die angegebene virtuelle Adressregion zulässig. Die Region kann weiterhin gelöscht werden, wenn der Prozess beendet wird.
MM_SECURE_USER_MODE_ONLY Der durch diese Sicherung angegebene Schutz wird nur auf nachfolgende Aufrufe aus dem Benutzermodus angewendet, die versuchen, den Schutz zu ändern (Aufrufer im Kernelmodus umgehen diese Sicherung).
MM_SECURE_NO_INHERIT Wenn der Prozess geklont wird, wird die VAD des untergeordneten Prozesses im Gegensatz zum übergeordneten Prozess nicht gesichert.

Rückgabewert

Gibt einen Wert zurück, der einem Handle ähnelt, der nur zum Aufheben der Sicherheit des Bereichs verwendet werden soll.

Wenn der Bereich aufgrund von Schutzproblemen, nicht commitiertem Arbeitsspeicher oder ungültigen Parametern nicht gesperrt werden konnte, gibt diese Routine NULL zurück.

Hinweise

Verwenden Sie MmSecureVirtualMemoryEx anstelle von MmSecureVirtualMemory , wenn Sie MM_SECURE_NO_CHANGE angeben müssen, damit keine Schutzänderungen für die angegebene Ansicht zulässig sind.

Der Rückgabewert dieser Funktion kann nur mit MmUnsecureVirtualMemory verwendet werden. Der Treiber ruft diese Routine auf, um den Bereich in einen normalen Zustand zurückzusetzen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1809
Kopfzeile ntddk.h
IRQL APC_LEVEL

Weitere Informationen