Функция WriteProcessMemory (memoryapi.h)
Записывает данные в область памяти в указанном процессе. Вся область для записи должна быть доступна, иначе операция завершится ошибкой.
Синтаксис
BOOL WriteProcessMemory(
[in] HANDLE hProcess,
[in] LPVOID lpBaseAddress,
[in] LPCVOID lpBuffer,
[in] SIZE_T nSize,
[out] SIZE_T *lpNumberOfBytesWritten
);
Параметры
[in] hProcess
Дескриптор памяти процесса, который необходимо изменить. Дескриптор должен иметь PROCESS_VM_WRITE и PROCESS_VM_OPERATION доступ к процессу.
[in] lpBaseAddress
Указатель на базовый адрес в указанном процессе, в который записываются данные. Перед передачей данных система проверяет, доступны ли все данные в базовом адресе и памяти указанного размера для доступа на запись, и если они недоступны, функция завершается сбоем.
[in] lpBuffer
Указатель на буфер, содержащий данные для записи в адресное пространство указанного процесса.
[in] nSize
Число байтов, записываемых в указанный процесс.
[out] lpNumberOfBytesWritten
Указатель на переменную, получающую количество байтов, переданных в указанный процесс. Этот параметр является необязательным. Если lpNumberOfBytesWritten имеет значение NULL, параметр игнорируется.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция завершается сбоем, возвращаемое значение равно 0 (ноль). Дополнительные сведения об ошибке можно получить, вызвав GetLastError. Функция завершается сбоем, если запрошенная операция записи пересекается с недоступной областью процесса.
Комментарии
WriteProcessMemory копирует данные из указанного буфера в текущем процессе в диапазон адресов указанного процесса. Любой процесс, имеющий дескриптор с PROCESS_VM_WRITE и PROCESS_VM_OPERATION доступ к процессу, в который необходимо записать, может вызвать функцию . Обычно, но не всегда выполняется отладка процесса с адресным пространством, в который выполняется запись.
Вся область для записи должна быть доступна, и если она недоступна, функция завершается ошибкой.
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | memoryapi.h (включая Windows.h) |
Библиотека | onecore.lib |
DLL | Kernel32.dll |