我需要使用VirtualProtect,我的問題是關於傳遞給函數的區域的地址。 它表示(在MSDN上)「描述起始頁面的地址」,它是否必須是頁面開始的地址或者它可能是該頁面中的任何地址? 換句話說,我應該首先使用VirtualQuery來確定頁面的起始地址嗎?VirtualProtect是否需要頁面開始的地址?
2
A
回答
3
您不需要傳入頁面的基地址。 VirtualProtect
將接受頁面內的任何地址。該description of the dwSize
parameter使得其清楚:
受影響的頁面的區域包括包含該範圍內的一個或多個字節從lpAddress參數(lpAddress +的dwSize)的所有頁面。這意味着跨頁邊界的2字節範圍會導致兩個頁面的保護屬性發生更改。
F你現在能夠有跨頁邊界的兩個字節的範圍內,那麼它必須能夠lpAddress
是一個頁面結束之前只是一個字節。頁面不能只是一個字節長,所以它不在頁面的開頭。
1
無論哪種情況,您都不需要VirtualQuery
- 頁面總是PAGE_SIZE
的倍數,通常是4 KiB。所以你只需要將你的號碼整理成最接近的PAGE_SIZE
。
但是我不相信你需要向下取整;我認爲任何地址都可以工作。雖然這可能值得仔細檢查。
相關問題
- 1. Modbus主站是否需要地址?
- 2. Schema.org麪包屑是否需要主頁?
- 3. 我是否需要爲每個頁面分開JavaScript?
- 4. 是否始終需要ACL?
- 5. gcc開始地址
- 6. ARM開始地址
- 7. ExtensionDataObject是否需要公開?
- 8. 是 - > h_addr_list [0]我需要的地址?
- 9. 需要刷新頁面看到剛剛開始
- 10. 「open」類的初始化程序是否也需要打開?
- 11. AWS IP地址 - 如果EC2實例位於ELB後面,它們是否需要?
- 12. 我是否需要捕獲賬單地址信息?
- 13. 根IPv6/:: 1地址在phpMyAdmin中是否需要密碼?
- 14. 是否需要專用IP地址來安裝SSL證書?
- 15. 內存地址轉換是否需要額外訪問內存?
- 16. 在分頁,這是沒有必要添加頁面偏移的頁面幀的起始地址產生物理地址
- 17. 我是否需要添加網址平坦頁url.py在Django
- 18. 站點地圖是否需要包含鏈接的靜態頁面?
- 19. iOS中的本地通知是否需要開發者帳戶?
- 20. 我是否需要將流(C#)重置爲開始?
- 21. 「設置交易級別」是否需要開始交易?
- 22. SWI-Prolog文件是否需要開始和結束字符?
- 23. 我是否需要初始化位?
- 24. 是否始終需要textViewResourceId參數?
- 25. iOS - registerForRemoteNotificationTypes是否需要始終執行?
- 26. PHP,需要在地址欄
- 27. 包含/需要HTTP地址
- 28. MVC3開始頁面
- 29. 由AJAX加載的頁面是否需要html&head&body標籤
- 30. 我是否需要不同的html頁面進行打印?
謝謝,我錯過了那部分。 – Elad