Freigeben über


NtQueryVirtualMemory-Funktion (ntifs.h)

Die NtQueryVirtualMemory-Routine bestimmt den Zustand, den Schutz und den Typ eines Seitenbereichs innerhalb des virtuellen Adressraums des angegebenen Prozesses.

Syntax

__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryVirtualMemory(
  [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

Handle für den Prozess, in dessen Kontext sich die abzufragten Seiten befinden. Verwenden Sie das NtCurrentProcess-Makro , um den aktuellen Prozess anzugeben.

[in, optional] BaseAddress

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

[in] MemoryInformationClass

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

[out] MemoryInformation

Zeiger auf einen Puffer, der die angegebenen Informationen empfängt. Format und Inhalt des Puffers hängen von der im Parameter MemoryInformationClass angegebenen Informationsklasse ab. 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 Puffers in Bytes an, auf den MemoryInformation verweist.

[out, optional] ReturnLength

Ein optionaler Zeiger, der, sofern angegeben, die Anzahl der Bytes empfängt, die im MemoryInformation-Puffer 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_ACCESS_DENIED Der Aufrufer verfügte über unzureichende Zugriffsrechte, um die angeforderte Aktion auszuführen.
STATUS_ACCESS_VIOLATION Die angegebene Basisadresse ist eine ungültige virtuelle Adresse.
STATUS_INFO_LENGTH_MISMATCH Der MemoryInformation-Puffer ist größer als MemoryInformationLength.
STATUS_INVALID_INFO_CLASS Der angegebene MemoryInformationClass-Parameter ist ungültig.
STATUS_INVALID_PARAMETER Die angegebene Basisadresse liegt außerhalb des Bereichs der zugänglichen Adressen.

Hinweise

ZwQueryVirtualMemory bestimmt den Zustand der ersten Seite innerhalb des Bereichs und scannt 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 wurde. Die Regionsattribute, die Länge des Bereichs der Seiten mit übereinstimmenden Attributen und ein entsprechender status Wert werden zurückgegeben.

Wenn der gesamte Bereich der Seiten nicht über einen übereinstimmenden Satz von Attributen verfügt, werden die Unterregionen innerhalb einer Adressreservierung einzeln zurückgegeben. Sie verfügen über denselben * MemoryInformation.AllocationBase-Wert , ihre individuellen Größen befinden sich in *MemoryInformation.RegionSize, und die Gesamtgröße der Adressreservierung kann durch Summieren aller *MemoryInformation.RegionSize-Werte abgerufen werden, die einem bestimmten *MemoryInformation.AllocationBase-Wert zugeordnet sind.

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 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 systemeigenen Systemdienstroutinen.

Anforderungen

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

Weitere Informationen

MEMORY_BASIC_INFORMATION

MEMORY_INFORMATION_CLASS

POWER_PLATFORM_INFORMATION

ZwQueryVirtualMemory