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

變數的指標,接收傳送至指定緩衝區的位元組數目。 如果 lpNumberOfBytesReadNull,則會忽略 參數。

傳回值

如果函式成功,則傳回非零的值。

如果函式失敗,傳回值為 0 (零) 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

如果要求的讀取作業跨越無法存取的進程區域,函式就會失敗。

備註

ReadProcessMemory 會將指定位址範圍中的資料從指定的進程位址空間複製到目前進程的指定緩衝區。 具有具有PROCESS_VM_READ存取權之控制碼的任何進程都可以呼叫 函式。

要讀取的整個區域必須可供存取,如果無法存取,則函式會失敗。

需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 memoryapi.h (包括 Windows.h)
程式庫 onecore.lib
DLL Kernel32.dll

另請參閱

偵錯函式OpenProcess處理偵錯函式、 VirtualAllocExWriteProcessMemory