Mm(Un)MapLockedPages не правильно использую?

Тема в разделе "WASM.WIN32", создана пользователем stepnoy, 7 мар 2006.

  1. stepnoy

    stepnoy New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2006
    Сообщения:
    1
    В своем драйвере рамдиска выделяю некоторое количество страниц физ. памяти и мапаю кусками (например по 16 метров) использую функции примерное в такой полседовательности



    1. MmAllocatePagesForMdl()

    2. MmMapLockedPages()

    { каждый раз при переходе между страницами

    3. MmUnmapLockedPages()

    4. MmMapLockedPages()

    }

    5. MmUnmapLockedPages()

    6. MmFreePagesFromMdl() - точно не помню название (по-моему такое...)



    в результате, через некоторое время (при частом перемапе) получаю Page fault. Посмотрел на отмапленную память оказалось, что функция MmMapLockedPages() возвращая не NULL мапит только часть нужной мне памяти (остальная часть инвалидная) либо не мапит вообще.



    Подскажите, с чем это может быть связано?