ZwQueryVirtualMemory, fonction (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ésider les pages à interroger. Utilisez la macro ZwCurrentProcess pour spécifier le processus actuel.
[in, optional] BaseAddress
Adresse de base de la région de 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 de 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 de retour
Retourne STATUS_SUCCESS si l’appel réussit. Si l’appel échoue, les codes d’erreur possibles sont les suivants :
Retourner le code | Description |
---|---|
STATUS_INVALID_PARAMETER | L’adresse de base spécifiée se trouve en dehors de la plage d’adresses accessibles. |
STATUS_ACCESS_DENIED | L’appelant avait des droits d’accès insuffisants pour effectuer l’action demandée. |
STATUS_INFO_LENGTH_MISMATCH | La mémoire tampon MemoryInformation est supérieure à 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 de la région, puis analyse les entrées suivantes dans le mappage d’adresses du processus à partir de l’adresse de base jusqu’à ce que la plage entière de pages ait été analysée ou jusqu’à ce qu’une page avec un ensemble d’attributs non correspondant soit rencontré. Les attributs de région, la longueur de la région des pages avec des attributs correspondants et une valeur d’état appropriée sont retournés.
Si la région entière des pages n’a pas d’ensemble d’attributs correspondant, la valeur de paramètre ReturnLength peut être utilisée pour calculer l’adresse et la longueur de la région des 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 de 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 Using Nt and Zw Versions of the Native System Services Routines.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 10 |
plateforme cible | Universel |
d’en-tête | ntifs.h |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |