ReadProcessMemory function kernel32

Win32Result<bool> ReadProcessMemory(
  1. HANDLE hProcess,
  2. Pointer<NativeType> lpBaseAddress,
  3. Pointer<NativeType> lpBuffer,
  4. int nSize,
  5. Pointer<IntPtr>? lpNumberOfBytesRead,
)

Reads data from an area of memory in a specified process.

The entire area to be read must be accessible or the operation fails.

To learn more, see learn.microsoft.com/windows/win32/api/memoryapi/nf-memoryapi-readprocessmemory.

Implementation

Win32Result<bool> ReadProcessMemory(
  HANDLE hProcess,
  Pointer lpBaseAddress,
  Pointer lpBuffer,
  int nSize,
  Pointer<IntPtr>? lpNumberOfBytesRead,
) {
  final result_ = ReadProcessMemory_Wrapper(
    hProcess,
    lpBaseAddress,
    lpBuffer,
    nSize,
    lpNumberOfBytesRead ?? nullptr,
  );
  return .new(value: result_.value.i32 != FALSE, error: result_.error);
}