Функция ReadProcessMemory (memoryapi.h)

Синтаксис

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

Параметры

[in] hProcess

Дескриптор процесса с считываемой памятью. Дескриптор должен иметь PROCESS_VM_READ доступ к процессу.

[in] lpBaseAddress

Указатель на базовый адрес в указанном процессе, из которого выполняется чтение. Перед передачей данных система проверяет, доступны ли все данные в базовом адресе и памяти указанного размера для чтения, и если они недоступны, функция завершается сбоем.

[out] lpBuffer

Указатель на буфер, получающий содержимое из адресного пространства указанного процесса.

[in] nSize

Число байтов, считываемых из указанного процесса.

[out] lpNumberOfBytesRead

Указатель на переменную, получающую количество байтов, переданных в указанный буфер. Если lpNumberOfBytesRead имеет значение NULL, параметр игнорируется.

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

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

Если функция завершается сбоем, возвращаемое значение равно 0 (ноль). Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

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

Комментарии

ReadProcessMemory копирует данные в указанном диапазоне адресов из адресного пространства указанного процесса в указанный буфер текущего процесса. Любой процесс, имеющий дескриптор с PROCESS_VM_READ доступом, может вызвать функцию .

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

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header memoryapi.h (включая Windows.h)
Библиотека onecore.lib
DLL Kernel32.dll

См. также

Функции отладки, OpenProcess, функции процессов для отладки, VirtualAllocEx, WriteProcessMemory