Функция WriteProcessMemory


Функция WriteProcessMemory пишет данные области памяти в заданном процессе. Вся область, чтобы записаться,  должна быть доступна, или операция завершается ошибкой.

Синтаксис

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

Параметры

hProcess

[in] Дескриптор процесса, память которого должна модифицироваться. Дескриптор должен иметь доступ к процессу PROCESS_VM_WRITE и PROCESS_VM_OPERATION.

lpBaseAddress

[in] Указатель на базовый адрес в заданном процессе, в который должны быть записаны данные. Прежде, чем происходит какая-либо передача данных, система проверяет, что все данные в базовом адресе и в заданном размере памяти доступны для записи. Если дело обстоит так, то функция приступает к работе; в противном случае, функция завершается ошибкой.

lpBuffer

[in] Указатель на буфер, который содержит записываемые данные в адресном пространстве заданного процесса.

nSize

[in] Число байтов, записываемых в заданном процессе.

lpNumberOfBytesWritten

[out] Указатель на переменную, которая получает число байтов, переданное в указанный процесс. Этот параметр дополнительный. Если lpNumberOfBytesWritten - ПУСТО (NULL), этот параметр игнорируется.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение не нуль.

Если функция завершается ошибкой, возвращаемое значение равняется нулю. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError. Функция завершится ошибкой, если затребованная операция записи пересекается с областью процесса, которая является недоступной.

Замечания

WriteProcessMemory копирует данные из указанного буфера в текущем процессе в область адреса заданного процесса. Любой процесс, который имеет дескриптор с доступом к процессу PROCESS_VM_WRITE и PROCESS_VM_OPERATION, чтобы записать в него, может вызвать функцию. Процесс, адресное пространство которого записывается  - обычно, но не обязательно, отлаживается.

Вся область, в которую будет производится запись,  должна быть доступна. Если это не так, функция завершается ошибкой, как отмечено выше.

Смотри также

Обзор Основы отладки, Функции, используемые при отладке,   ReadProcessMemory

Размещение и совместимость WriteProcessMemory

К

Windows XP

Да 

л

Windows 2000 Professional

Да

и

Windows NT  Workstation

Да 

е

Windows Me

Да

н

Windows 98

Да

т

Windows 95

Да

 
С

Windows Server 2003

Да

е Windows 2000 Server Да
р Windows NT Server Да 
в    
е    
р    

Используемая библиотека

Kernel32.lib

Используемая DLL kernel32.dll
 Заголовочный файл  

- объявлено в

Winbase.h

 - включено в

Windows.h

 Unicode

Нет

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки
Переведено 08.07.2005 13:27 ©Copyright V. Sokovikov
Hosted by uCoz