Функция ReadProcessMemory читает данные из области памяти в заданном процессе. Вся область, которая читается, должна быть доступна, или операция завершается ошибкой.
Синтаксис
BOOL ReadProcessMemory( HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, SIZE_T nSize, SIZE_T* lpNumberOfBytesRead ); |
Параметры
hProcess
[in] Дескриптор процесса, память которого читается. Дескриптор должен иметь доступ к процессу PROCESS_VM_READ.lpBaseAddress
[in] Указатель на базовый адрес в заданном процессе из которого делается чтение. Прежде, чем происходит какая-либо передача данных, система проверяет, все ли данные в базовом адресе и памяти в заданном размере доступны для чтения. Если дело обстоит так, функции приступает к работе; в противном случае функция завершается ошибкой.lpBuffer
[out] Указатель на буфер, который получает содержание из адресного пространства заданного процесса.nSize
[in] Число байтов, которое читается из заданного процесса.lpNumberOfBytesRead
[out] Указатель на переменную, которая получает число байтов, переданное в указанный буфер. Если lpNumberOfBytesRead - ПУСТО (NULL), этот параметр игнорируется.Возвращаемые значения
Если функция завершается успешно, возвращаемое значение не нуль.
Если функция завершается ошибкой, возвращаемое значение равняется нулю. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Функция завершается ошибкой, если затребованная операция чтения пересекается с областью процесса, которая является недоступной.
Замечания
Функция ReadProcessMemory копирует данные в заданном адресе, в диапазоне от адресного пространства указанного процесса в заданный определенный буфер текущего процесса. Любой процесс, который имеет дескриптор с доступом PROCESS_VM_READ, может вызвать функцию. Процесс, адресное пространство которого читается - обычно, но не обязательно, отлаживается.
Вся область, которая читается должна быть доступна. Если это не так, функция завершается ошибкой как отмечено выше.
Смотри также
Обзор Основы отладки, Функции, используемые при отладке, WriteProcessMemory
Размещение и совместимость ReadProcessMemory |
||
К |
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 |
Нет |
|
Замечания по платформе |
Не имеется |