выделение непрерывной физической памяти

Тема в разделе "WASM.NT.KERNEL", создана пользователем Rodin, 27 ноя 2008.

  1. Rodin

    Rodin New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2007
    Сообщения:
    125
    Вобщем надо выделить блок непрерывной физической памяти, но обязательно чтобы соответствующие виртуальные адреса были в 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 я смогу определить в каком пуле мой вирт адрес. Это еще один вопрос - как определить в каком пуле находится некий виртуальный адрес?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Возможно твой адрес попадет в свободное пространство. Не помню, причисляется оно к nonpaged pool, но оно тоже не подкачиваемое.
    Даже если попадет в paged pool - ведь никогда не поздно заблокировать страницы в памяти? Какая тебе разница-то.
     
  3. Rodin

    Rodin New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2007
    Сообщения:
    125
    Что еще за "свободное пространство"? Никогда не слышал. Можно подробнее?

    Действительно это поможет. Спасибо.
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    я не помню как эта вся область называется, может быть она относится к nonpaged pool. найду - скажу.