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 |