從ReadProcessMemory in MSDN:爲什麼ReadProcessMemory有`lpNumberOfBytesRead`?
lpBaseAddress [IN]:
的指針在指定過程中的基地址從中讀取。在發生任何數據傳輸之前,系統會驗證指定大小的基址和內存中的所有數據是否可以讀取訪問,如果不可訪問,則該功能將失敗。
nSize [in]:
要從指定進程讀取的字節數。
lpNumberOfBytesRead [OUT]
的指針,該接收傳送到指定緩衝區的字節數的變量。如果lpNumberOfBytesRead爲NULL,則該參數將被忽略。
因此.. ReadProcessMemory
只能完全成功或完全失敗。而呼叫者顯然知道這個尺寸 - 必須通過它才能撥打電話。爲什麼有lpNumberOfBytesRead
?
這是一個很好的問題。 – paxdiablo 2010-12-16 03:30:38
@paxdiablo:謝謝:) – 2010-12-16 03:32:30
黑暗魔法在這裏。有一個特定的錯誤ERROR_PARTIAL_COPY,其中指出「只有部分ReadProcessMemory或WriteProcessMemory請求已完成」。這似乎是在「完全成功或失敗」的情況下飛行,但我不知道哪個是正確的。 – paxdiablo 2010-12-16 03:49:54