Freigeben über


ZwQueryVirtualMemory-Funktion (ntifs.h)

Die ZwQueryVirtualMemory-Routine bestimmt den Zustand, den Schutz und den Typ einer Region von Seiten innerhalb des virtuellen Adressraums des Antragstellerprozesses.

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 dessen Kontext sich die abzufragten Seiten befinden. Verwenden Sie das Makro ZwCurrentProcess , um den aktuellen Prozess anzugeben.

[in, optional] BaseAddress

Die Basisadresse des Bereichs der abzufragenden Seiten. Dieser Wert wird auf die nächste Hostseitenadressgrenze gerundet.

[in] MemoryInformationClass

Die Speicherinformationsklasse, über die Informationen abgerufen werden sollen. Derzeit wird nur MEMORY_INFORMATION_CLASS Wert unterstützt : MemoryBasicInformation.

[out] MemoryInformation

Ein Zeiger auf einen Puffer, der die angegebenen Informationen empfängt. Format und Inhalt des Puffers hängen von der angegebenen Informationsklasse ab, die im Parameter MemoryInformationClass angegeben ist. Wenn der Wert MemoryBasicInformation an MemoryInformationClass übergeben wird, ist der Wert des MemoryInformation-Parameters eine MEMORY_BASIC_INFORMATION Struktur.

[in] MemoryInformationLength

Gibt die Länge des Speicherinformationspuffers in Bytes an.

[out, optional] ReturnLength

Ein optionaler Zeiger, der, falls angegeben, die Anzahl von Bytes empfängt, die im Speicherinformationspuffer platziert sind.

Rückgabewert

Gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Wenn der Aufruf fehlschlägt, sind folgende Fehlercodes möglich:

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.

Hinweise

ZwQueryVirtualMemory bestimmt den Zustand der ersten Seite innerhalb der Region und scannt dann nachfolgende Einträge in der Prozessadresszuordnung von der Basisadresse nach oben, bis entweder der gesamte Seitenbereich überprüft wurde oder bis eine Seite mit einem nicht übereinstimmenden Satz von Attributen gefunden wurde. Die Regionsattribute, die Länge der Region von Seiten mit übereinstimmenden Attributen und ein entsprechender status Wert werden zurückgegeben.

Wenn der gesamte Bereich von Seiten nicht über einen übereinstimmenden Satz von Attributen verfügt, kann der ReturnLength-Parameterwert verwendet werden, um die Adresse und länge des Bereichs von Seiten zu berechnen, die nicht überprüft wurden.

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, da sie Eingabeparameter verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Zielplattform Universell
Header ntifs.h
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe

Weitere Informationen

POWER_PLATFORM_INFORMATION