ZwQueryVirtualMemory-Funktion (ntifs.h)
Die ZwQueryVirtualMemory Routine bestimmt den Zustand, den Schutz und den Typ eines Seitenbereichs innerhalb des virtuellen Adressraums des Betreffprozesses.
Syntax
NTSYSAPI NTSTATUS ZwQueryVirtualMemory(
[in] HANDLE ProcessHandle,
[in, optional] PVOID BaseAddress,
[in] MEMORY_INFORMATION_CLASS MemoryInformationClass,
[out] PVOID MemoryInformation,
[in] SIZE_T MemoryInformationLength,
[out, optional] PSIZE_T ReturnLength
);
Parameter
[in] ProcessHandle
Ein Handle für den Prozess, in dem sich die abzufragenden Seiten befinden. Verwenden Sie das ZwCurrentProcess Makro, um den aktuellen Prozess anzugeben.
[in, optional] BaseAddress
Die Basisadresse des Seitenbereichs, der abgefragt werden soll. Dieser Wert wird auf die nächste Hostseitenadressengrenze abgerundet.
[in] MemoryInformationClass
Die Speicherinformationsklasse, über die Informationen abgerufen werden sollen. Derzeit wird der einzige unterstützte MEMORY_INFORMATION_CLASS Wert MemoryBasicInformation.
[out] MemoryInformation
Ein Zeiger auf einen Puffer, der die angegebenen Informationen empfängt. Das Format und der Inhalt des Puffers hängen von der angegebenen Informationsklasse ab, die im MemoryInformationClass Parameter angegeben ist. Wenn der Wert MemoryBasicInformation- an MemoryInformationClassübergeben wird, ist der MemoryInformation Parameterwert eine MEMORY_BASIC_INFORMATION Struktur.
[in] MemoryInformationLength
Gibt die Länge in Byte des Speicherinformationspuffers an.
[out, optional] ReturnLength
Ein optionaler Zeiger, der, falls angegeben, die Anzahl der Bytes empfängt, die im Speicherinformationspuffer platziert werden.
Rückgabewert
Gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Wenn der Aufruf fehlschlägt, umfassen mögliche Fehlercodes Folgendes:
Rückgabecode | Beschreibung |
---|---|
STATUS_INVALID_PARAMETER | Die angegebene Basisadresse liegt außerhalb des Bereichs der barrierefreien Adressen. |
STATUS_ACCESS_DENIED | Der Aufrufer verfügte über unzureichende Zugriffsrechte, um die angeforderte Aktion auszuführen. |
STATUS_INFO_LENGTH_MISMATCH | Der MemoryInformation Puffer ist größer als MemoryInformationLength. |
STATUS_INVALID_INFO_CLASS | Ein anderer Wert als MemoryBasicInformation wurde an den parameter MemoryInformationClass übergeben. |
Bemerkungen
ZwQueryVirtualMemory bestimmt den Status der ersten Seite innerhalb der Region und durchsucht dann nachfolgende Einträge in der Prozessadresszuordnung von der Basisadresse nach oben, bis entweder der gesamte Seitenbereich gescannt wurde oder bis eine Seite mit einem nicht übereinstimmenden Satz von Attributen gefunden wird. Die Regionsattribute, die Länge des Seitenbereichs mit übereinstimmenden Attributen und ein entsprechender Statuswert werden zurückgegeben.
Wenn der gesamte Seitenbereich nicht über einen übereinstimmenden Satz von Attributen verfügt, kann der ReturnLength- Parameterwert verwendet werden, um die Adresse und Länge des Bereichs der Nicht gescannten Seiten zu berechnen.
NtQueryVirtualMemory und ZwQueryVirtualMemory sind zwei Versionen derselben Windows Native System Services-Routine.
Bei Aufrufen von Kernelmodustreibern können sich die NtXxx**** und ZwXxx****-Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter behandeln und interpretieren. Weitere Informationen zur Beziehung zwischen den NtXxx und ZwXxx- Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10 |
Zielplattform- | Universal |
Header- | ntifs.h |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |