Fonction WriteProcessMemory (memoryapi.h)

Écrit les données dans une zone de mémoire dans un processus spécifié. La zone entière dans laquelle écrire doit être accessible ou l’opération échoue.

Syntaxe

BOOL WriteProcessMemory(
  [in]  HANDLE  hProcess,
  [in]  LPVOID  lpBaseAddress,
  [in]  LPCVOID lpBuffer,
  [in]  SIZE_T  nSize,
  [out] SIZE_T  *lpNumberOfBytesWritten
);

Paramètres

[in] hProcess

Handle de la mémoire de processus à modifier. Le handle doit disposer d’un accès PROCESS_VM_WRITE et PROCESS_VM_OPERATION au processus.

[in] lpBaseAddress

Pointeur vers l’adresse de base dans le processus spécifié dans lequel les données sont écrites. Avant le transfert de données, le système vérifie que toutes les données de l’adresse de base et de la mémoire de la taille spécifiée sont accessibles pour l’accès en écriture, et si elles ne sont pas accessibles, la fonction échoue.

[in] lpBuffer

Pointeur vers la mémoire tampon qui contient des données à écrire dans l’espace d’adressage du processus spécifié.

[in] nSize

Nombre d’octets à écrire dans le processus spécifié.

[out] lpNumberOfBytesWritten

Pointeur vers une variable qui reçoit le nombre d’octets transférés dans le processus spécifié. Ce paramètre est facultatif. Si lpNumberOfBytesWritten a la valeur NULL, le paramètre est ignoré.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est zéro (0). Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError. La fonction échoue si l’opération d’écriture demandée passe dans une zone du processus inaccessible.

Notes

WriteProcessMemory copie les données de la mémoire tampon spécifiée dans le processus en cours vers la plage d’adresses du processus spécifié. Tout processus disposant d’un handle avec PROCESS_VM_WRITE et PROCESS_VM_OPERATION accès au processus à écrire peut appeler la fonction. En règle générale, mais pas toujours, le processus avec un espace d’adressage dans lequel est écrit est débogué.

La zone entière dans laquelle écrire doit être accessible, et si elle n’est pas accessible, la fonction échoue.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête memoryapi.h (inclure Windows.h)
Bibliothèque onecore.lib
DLL Kernel32.dll

Voir aussi

Fonctions de débogage

Fonctions de traitement du débogage

ReadProcessMemory

VirtualAllocEx