А тонкость заключается в непонятном моменте - можно ли при выделении использовать только один флаг MEM_COMMIT. Вот дискуссии на эту тему:
http://www.wasm.ru/forum/viewtopic.php?id=20116
http://www.programmersforum.ru/showthread.php?t=229591
Но все равно, хочется ведь услышать истину, как это нужно делать идеологически правильно...
Мне не нужно резервировать диапазоны адресов, а сразу использовать в физической памяти.
И чтобы еще в файл подкачки не сбрасывалось (VirtualLock, видимо, придется юзать для этого...).
Вот так сейчас у меня происходит выделение и освобождение памяти:
- Код: Выделить всё
lMem = VirtualAlloc(0&, lSize, MEM_COMMIT, PAGE_READWRITE)
'Какие-то операции с памятью
lRet = VirtualFree(ByVal lMem, 0&, MEM_RELEASE)