Partager via


Accès à la mémoire WdbgExts

Cette rubrique fournit une brève vue d’ensemble de la façon dont l’accès à la mémoire peut être effectué à l’aide de l’API WdbgExts. Pour obtenir une vue d’ensemble de l’accès à la mémoire dans le moteur de débogueur, consultez la section Vue d’ensemble du moteur du débogueur de cette documentation.

Mémoire virtuelle

La mémoire virtuelle de la cible peut être lue à l’aide de la fonction ReadMemory et écrite à l’aide de la fonction WriteMemory . Les pointeurs de la mémoire de la cible peuvent être lus et écrits à l’aide des fonctions ReadPointer, ReadPtr et WritePointer .

Pour rechercher dans la mémoire virtuelle un modèle d’octets, utilisez la fonction SearchMemory .

La fonction TranslateVirtualToPhysical peut être utilisée pour convertir une adresse de mémoire virtuelle en adresse de mémoire physique.

La fonction Disasm peut être utilisée pour désassembler une seule instruction d’assembly sur la cible.

Pour vérifier la faible quantité de mémoire de 4 Go lors de l’utilisation de l’extension d’adresse physique (PAE), utilisez l’opération IoctlIG_LOWMEM_CHECK.

Mémoire physique

La mémoire physique peut être directement accessible uniquement pendant le débogage en mode noyau.

La mémoire physique sur la cible peut être lue à l’aide des fonctions ReadPhysical et ReadPhysicalWithFlags et écrites à l’aide des fonctions WritePhysical et WritePhysicalWithFlags.

Pour rechercher dans la mémoire physique les pointeurs vers des emplacements dans une plage spécifiée, utilisez l’opération IoctlIG_POINTER_SEARCH_PHYSICAL.

Autres espaces de données

Dans le débogage en mode noyau, il est possible de lire et d’écrire des données dans divers espaces de données en plus de la mémoire principale. Les espaces de données suivants sont accessibles :

mémoireControl-Space
Les fonctions ReadControlSpace, ReadControlSpace64, ReadTypedControlSpace32 et ReadTypedControlSpace64 lisent les données à partir d’un espace de contrôle. La fonction WriteControlSpace écrit des données dans un espace de contrôle.

Mémoire d’E/S
Les fonctions ReadIoSpace, ReadIoSpace64, ReadIoSpace64, ReadIoSpaceEx64 lisent les données à partir de la mémoire d’E/S système et de la mémoire d’E/S de bus. Les fonctions WriteIoSpace, WriteIoSpace64, WriteIoSpaceEx et WriteIoSpaceEx64 écrivent des données dans la mémoire d’E/S système et la mémoire d’E/S bus.

Registre spécifique du modèle (MSR)
Les fonctions ReadMsr et WriteMsr lisent et écrivent des MSR.

Bus système
Les opérations IoctlIG_GET_BUS_DATA et IG_SET_BUS_DATA lire et écrire des données de bus système.

informations supplémentaires

Pour obtenir une API d’accès à la mémoire plus puissante, consultez la section Utilisation de l’API du moteur de débogage de cette documentation.