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

Discussion in 'WASM.NT.KERNEL' started by Rodin, Nov 27, 2008.

  1. Rodin

    Rodin New Member

    Blog Posts:
    0
    Joined:
    Apr 30, 2007
    Messages:
    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

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    5,582
    Возможно твой адрес попадет в свободное пространство. Не помню, причисляется оно к nonpaged pool, но оно тоже не подкачиваемое.
    Даже если попадет в paged pool - ведь никогда не поздно заблокировать страницы в памяти? Какая тебе разница-то.
     
  3. Rodin

    Rodin New Member

    Blog Posts:
    0
    Joined:
    Apr 30, 2007
    Messages:
    125
    Что еще за "свободное пространство"? Никогда не слышал. Можно подробнее?

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

    wasm_test wasm test user

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    5,582
    я не помню как эта вся область называется, может быть она относится к nonpaged pool. найду - скажу.