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 |