要申请虚拟内存,有以下2个步骤:
1、预订地址空间区域
2、 调拨物理存储器
LPVOID lpAddress, 分配内存区域的地址。当你使用VirtualAlloc来提交一块以前保留的内存块的时候,lpAddress参数可以用来识别以前保留的内存块。如果这个参数是NULL,系统将会决定分配内存区域的位置,并且按64-KB向上取整(roundup)。 SIZE_T dwSize, 要分配或者保留的区域的大小。这个参数以字节为单位,而不是页,系统会根据这个大小一直分配到下页的边界DWORD
flAllocationType, 分配类型 ,你可以指定或者合并以下标志:MEM_COMMIT,MEM_AUTO_COMMIT,MEM_RESERVE和MEM_TOP_DOWN。
MEM_RESERVE:预留地址空间
MEM_COMMIT:调拨物理存储器
DWORD flProtect 指定了被分配区域的访问保护方式
实例:
Virtual(NULL,300*65536,MEM_RESERVE|MEM_COMMIT,page_readwrite);
释放虚拟内存
virtualFree(address,0,MEM_RELEASE);