NtAllocateVirtualMemory - как выделить память после адреса?

Тема в разделе "WASM.NT.KERNEL", создана пользователем katrus, 18 ноя 2009.

  1. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    По умолчанию NtAllocateVirtualMemory выделяет память в области "низких" адресов. Можно ли какнибудь заставить эту функцию выделить память после определенного адреса? Скажем, чтоб выделенный буффер был после 0х70000000.
     
  2. loginrl_103

    loginrl_103 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2008
    Сообщения:
    271
    из usermode?)
     
  3. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    MSDN читаем?
     
  4. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    В msdn нашел еще следующее:
    Но когда даю ненулевой BaseAddress - NtAllocateVirtualMemory возвращает STATUS_ALREADY_COMMITTED
     
  5. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Ну так тебе ж по-русски говорят, что указанный регион уже зарезервирован и одновременно закомичен, т.е. ты не можешь его использовать. Пробуй другой.
     
  6. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Опс, не дописал.
    А когда регион не зарегитрирован, возвращет STATUS_CONFLICTING_ADDRESSES
     
  7. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Сия ошибка, насколько мне известно, возвращается в следующих случаях:

    1. Если хотя бы одна страница из указанного региона занята.
    2. Указаны недопустимые границы региона в случае сброса страниц.
    3. Указанный регион пересекается со специальными системными страницами.
    ...

    И ещё ряд вариантов. Короче говоря, пробуй другие регионы. Карту а.п. процесса ещё посмотреть можно, чтобы уж наверняка знать. Ещё можно в цикле попробовать повызывать эту функцию, посмотреть результаты будет интересно.
     
  8. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    wrk-v1.2\base\ntos\mm\allocvm.c