Вобщем надо выделить блок непрерывной физической памяти, но обязательно чтобы соответствующие виртуальные адреса были в nonpaged pool. Как это сделать? Смотрел MmAllocateContiguousMemory. Вроде то что надо, однако "If the routine cannot satisfy the request from nonpaged pool, it attempts to perform the allocation from available unused pages". Т.е. возможно что мой виртуальный адрес будет в paged pool. Вобщем меня это устоит, если после вызова MmAllocateContiguousMemory я смогу определить в каком пуле мой вирт адрес. Это еще один вопрос - как определить в каком пуле находится некий виртуальный адрес?
Возможно твой адрес попадет в свободное пространство. Не помню, причисляется оно к nonpaged pool, но оно тоже не подкачиваемое. Даже если попадет в paged pool - ведь никогда не поздно заблокировать страницы в памяти? Какая тебе разница-то.
Что еще за "свободное пространство"? Никогда не слышал. Можно подробнее? Действительно это поможет. Спасибо.