Функция 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