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 |
標頭 | memoryapi.h (包括 Windows.h) |
程式庫 | onecore.lib |
DLL | Kernel32.dll |
另請參閱
偵錯函式、 OpenProcess、 處理偵錯函式、 VirtualAllocEx、 WriteProcessMemory