1.VirtualAlloc用來(lái)在進(jìn)程的虛擬地址空間中保留(reserve)或者提交(commit)頁(yè)。在保留時(shí)以64KB為粒度,即保留空間以64K為單位。而提交虛擬地址時(shí),則以頁(yè)(典型大小為4KB)為單位。
2.VirtualCopy用來(lái)綁定一塊物理內(nèi)存到當(dāng)前進(jìn)程虛擬地址空間。參數(shù)里的lpvSrc既可以是內(nèi)核段的虛擬地址也可以是物理地址(用page_physical來(lái)標(biāo)記)。同時(shí)要注意lpvSrc的右移與否。
3.使用VirtualAlloc要包含Winbase.h;使用VirtualCopy時(shí)要包含plfuncs.h.兩者都要鏈接coredll.lib.
4.在CE5.0之前,使用VirtualAlloc獲得的虛擬地址空間分為兩種情形:
(1)大小在2MB以下時(shí),位于調(diào)用進(jìn)程的虛擬空間中;
(2)大小大于2MB時(shí),位于用戶態(tài)的共享地址空間內(nèi)(0x42000000-0x7E000000 )