Выделение памяти.

Тема в разделе "WASM.BEGINNERS", создана пользователем anatolymik, 3 янв 2010.

  1. anatolymik

    anatolymik New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2009
    Сообщения:
    62
    Ребята подскажите какой функцией можно выделить память с установлением безопасности (читаемый, записываемый и т.д.) в нулевом кольце?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Выполнить последовательно:
    1) MmAllocatePagesForMdl - выделяет нужное количество физических страниц, возвращает MDL, куда записывает номера выделенных страниц.
    2) MmMapLockedPages/MmMapLockedPagesSpecifyCache - спроецировать MDL в system-spacе
    3) MmProtectMdlSystemAddress - установить новый тип защиты для отмапированных страниц; константы как в юзермоде (PAGE_xxx)
    справку по ф-ям смотри в мсдн.
    грохнуть в обратном порядке - MmUnmapLockedPages, MmFreePagesFromMdl.

    PS. MmProtectMdlSystemAddress работает только с отмапированными MDL.
     
  3. anatolymik

    anatolymik New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2009
    Сообщения:
    62
    Хорошо. Вот только не подскажешь еще тогда какие значения заносить в LowAddress, HighAddress, SkipBytes.
    МСДН читал не совсем понял. Точнее не понял вообще для чего такой каламбур. По мне просто бы система выдилела и всего делов.
     
  4. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Тогда не работай в нулевом кольце. Или ты хочешь быстро синий экран получить?

    Конечно в BEGINNERS следовало бы ответить, но раз уж полез в нулевое кольцо, то приучайся думать сам.
    Переведи эти слова и название функции и подумай. Поищи в Интернете и посмотри, что люди там задают - это называется "обучение на примерах".