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 |