Fonction ZwQueryVirtualMemory (ntifs.h)

La routine ZwQueryVirtualMemory détermine l’état, la protection et le type d’une région de pages dans l’espace d’adressage virtuel du processus d’objet.

Syntaxe

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
);

Paramètres

[in] ProcessHandle

Handle pour le processus dans lequel résident les pages à interroger. Utilisez la macro ZwCurrentProcess pour spécifier le processus en cours.

[in, optional] BaseAddress

Adresse de base de la région des pages à interroger. Cette valeur est arrondie à la limite d’adresse de page hôte suivante.

[in] MemoryInformationClass

Classe d’informations mémoire sur laquelle récupérer des informations. Actuellement, la seule valeur MEMORY_INFORMATION_CLASS prise en charge est MemoryBasicInformation.

[out] MemoryInformation

Pointeur vers une mémoire tampon qui reçoit les informations spécifiées. Le format et le contenu de la mémoire tampon dépendent de la classe d’informations spécifiée dans le paramètre MemoryInformationClass . Lorsque la valeur MemoryBasicInformation est passée à MemoryInformationClass, la valeur du paramètre MemoryInformation est une structure MEMORY_BASIC_INFORMATION .

[in] MemoryInformationLength

Spécifie la longueur en octets de la mémoire tampon d’informations.

[out, optional] ReturnLength

Pointeur facultatif qui, s’il est spécifié, reçoit le nombre d’octets placés dans la mémoire tampon d’informations.

Valeur retournée

Retourne STATUS_SUCCESS si l’appel réussit. Si l’appel échoue, les codes d’erreur possibles incluent les éléments suivants :

Code de retour Description
STATUS_INVALID_PARAMETER L’adresse de base spécifiée se trouve en dehors de la plage des adresses accessibles.
STATUS_ACCESS_DENIED L’appelant ne disposait pas des droits d’accès suffisants pour effectuer l’action demandée.
STATUS_INFO_LENGTH_MISMATCH La mémoire tampon MemoryInformation est plus grande que MemoryInformationLength.
STATUS_INVALID_INFO_CLASS Une valeur autre que MemoryBasicInformation a été passée au paramètre MemoryInformationClass .

Remarques

ZwQueryVirtualMemory détermine l’état de la première page dans la région, puis analyse les entrées suivantes dans le mappage d’adresses de processus à partir de l’adresse de base jusqu’à ce que toute la plage de pages ait été analysée ou jusqu’à ce qu’une page avec un ensemble d’attributs non correspondant soit rencontrée. Les attributs de région, la longueur de la région de pages avec des attributs correspondants et une valeur de status appropriée sont retournés.

Si la région entière des pages n’a pas d’ensemble d’attributs correspondant, la valeur du paramètre ReturnLength peut être utilisée pour calculer l’adresse et la longueur de la région de pages qui n’ont pas été analysées.

NtQueryVirtualMemory et ZwQueryVirtualMemory sont deux versions de la même routine Windows Native System Services.

Pour les appels à partir de pilotes en mode noyau, les versions NtXxx**** et ZwXxx**** d’une routine Windows Native System Services peuvent se comporter différemment dans la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Utilisation des versions Nt et Zw des routines des services système natifs.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
Plateforme cible Universal
En-tête ntifs.h
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe

Voir aussi

POWER_PLATFORM_INFORMATION