Syntaxe
BOOL WriteProcessMemory(HANDLE hProcess, LPVOID lpBaseAddress, LPVOID lpBuffer, DWORD cbWrite, LPDWORD lpNumberOfBytesWritten);
|
Paramètres
Nom |
Description |
hProcess |
Ce paramètre permet d'indiquer un descripteur de la mémoire de processus à modifier. Le descripteur doit avoir l'accès PROCESS_VM_WRITE et PROCESS_VM_OPERATION au processus. |
lpBaseAddress |
Ce paramètre permet d'indiquer un pointeur sur l'adresse de base du processus spécifié dans lequel les données sont écrites. Avant que le transfert de données ne soit effectué, 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 en écriture. Si elles ne le sont pas, la fonction échoue. |
lpBuffer |
Ce paramètre permet d'indiquer un pointeur sur le tampon contenant des données à écrire dans l'espace d'adressage du processus spécifié. |
nSize |
Ce paramètre permet d'indiquer un nombre d'octets à écrire dans le processus spécifié. |
lpNumberOfBytesWritten |
Ce paramètre optionnel permet d'indiquer un pointeur sur une variable recevant le nombre d'octets transférés dans le processus spécifié. Si lpNumberOfBytesWritten a la valeur NULL, le paramètre est ignoré. |
Retour
Valeur |
Description |
0 |
Cette valeur permet d'indiquer que la fonction a échoué et l'opération d'écriture demandée se croise dans une zone du processus inaccessible. Pour obtenir des informations d'erreur étendues, appelez la fonction GetLastError. |
0 != |
Ces valeurs permettent d'indiquer que l'opération a réussi |
Description
Cette fonction permet d'écrire en mémoire pour le processus spécifié.
Remarques
- La fonction WriteProcessMemory copie les données du tampon spécifié dans le processus en cours dans la plage d'adresses du processus spécifié. Tout processus disposant d'un descripteur avec les accès PROCESS_VM_WRITE et PROCESS_VM_OPERATION au processus sur lequel vous souhaitez écrire peut appeler la fonction. Généralement, mais pas toujours, le processus avec l'espace d'adressage en cours d'écriture est en cours de débogage.
- Toute la zone à écrire doit être accessible, et si elle n'est pas accessible, la fonction échoue.
Voir également
Langage de programmation - C pour Windows - API de Windows - VirtualAllocEx
Dernière mise à jour : Dimanche, le 6 décembre 2015