Freigeben über


MmSecureVirtualMemoryEx-Funktion (ntddk.h)

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

Syntax

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

Parameter

Address

Zeigen Sie auf die Basisadresse, um die Probe zu überprüfen und zu 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:

Flagge Beschreibung
MM_SECURE_EXCLUSIVE Die Sicherung ist nur erfolgreich, wenn noch keine anderen Sicheren an eine beliebige Stelle an der fraglichen VAD angeheftet sind.
MM_SECURE_NO_CHANGE Nach der Anwendung sind keine Schutzänderungen für die angegebene virtuelle Adressregion zulässig. Der Bereich kann weiterhin gelöscht werden, wenn der Vorgang 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 (Kernelmodus-Aufrufer umgehen diese Sicherung).
MM_SECURE_NO_INHERIT Wenn der Prozess geklont wird, wird im Gegensatz zum übergeordneten Prozess keine VAD des untergeordneten Prozesses gesichert.

Rückgabewert

Gibt einen Wert zurück, der einem Handle ähnelt, das nur verwendet werden soll, um den Bereich zu unsicher zu machen.

Wenn der Bereich aufgrund von Schutzproblemen nicht gesperrt werden konnte, werden nicht ausgelassene Speicher oder ungültige Parameter zurückgegeben, gibt diese Routine NULL zurück.

Bemerkungen

Verwenden Sie MmSecureVirtualMemoryEx anstelle von MmSecureVirtualMemory, wenn Sie MM_SECURE_NO_CHANGE angeben müssen, damit keine Schutzänderung in der angegebenen Ansicht zulässig ist.

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10, Version 1809
Header- ntddk.h
IRQL- APC_LEVEL

Siehe auch