阅读:949回复:2
NK里面用什么函数可以分配一个大的连续的内存,比如2M大的
NK里面用什么函数可以分配一个大的连续的内存,比如2M大的?
|
|
|
沙发#
发布于:2007-06-29 16:39
用文件映射的方法来做吧,就是调用
CreateFileMapping MapViewOfFile UnmapViewOfFile CloseHandle 来实现。 举个例子: HANDLE hMap; U8* pSMem; hMap = CreateFileMapping((HANDLE)0xffffffff, NULL, PAGE_READWRITE, 0, 0x200000, TEXT("Alloc_Huge_Area_Map")); pSMem = (U8*)MapViewOfFile(hMap, FILE_MAP_WRITE | FILE_MAP_READ, 0, 0, 0x200000); 然后就可以操作pSMem指向的2M空间。 用完要释放的话, UnmapViewOfFile((LPCVOID)pSMem); CloseHandle(hMap); 想进一步了解文件映射的用法看PB的帮助文档。 |
|
板凳#
发布于:2007-07-04 08:00
你这连续指的是什么啊?是物理上连续,还是像LocalAlloc得到的地址就行了,
如果是物理上连续,最好保留一块,因为太大,分配可能会失败. |
|
|