Toolhelp32ReadProcessMemory function (tlhelp32.h)

Copies memory allocated to another process into an application-supplied buffer.


BOOL Toolhelp32ReadProcessMemory(
  [in]  DWORD   th32ProcessID,
  [in]  LPCVOID lpBaseAddress,
  [out] LPVOID  lpBuffer,
  [in]  SIZE_T  cbRead,
  [out] SIZE_T  *lpNumberOfBytesRead


[in] th32ProcessID

The identifier of the process whose memory is being copied. This parameter can be zero to copy the memory of the current process.

[in] lpBaseAddress

The base address in the specified process to read. Before transferring any data, the system verifies that all data in the base address and memory of the specified size is accessible for read access. If this is the case, the function proceeds. Otherwise, the function fails.

[out] lpBuffer

A pointer to a buffer that receives the contents of the address space of the specified process.

[in] cbRead

The number of bytes to read from the specified process.

[out] lpNumberOfBytesRead

The number of bytes copied to the specified buffer. If this parameter is NULL, it is ignored.

Return value

Returns TRUE if successful.


This function opens a handle to the target process and closes it once the read operation has completed. If you're planning to perform several reads, use ReadProcessMemory instead.


Requirement Value
Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header tlhelp32.h
Library Kernel32.lib
DLL Kernel32.dll

See also



Tool Help Functions