Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: HighestAcceptableAddress в MmAllocateContiguousMemory?  (Прочитано 6128 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Anonymous
Гость
« : 28-01-2004 10:35 » 

Может ли быть HighestAcceptableAddress (PhysAddr) равным 0xFFFFFFFFFFFFFFFF если меня устраивает любой диаппазон из физической памяти? Пейдж фаултов не будет при обращении к несуществующей физ памяти??? M$ умалчивает об этом....
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #1 : 28-01-2004 10:41 » 

По моему может

Код:

PHYSICAL_ADDRESS highestAcceptableAddress;

highestAcceptableAddress.LowPart  =  -1;
highestAcceptableAddress.HighPart =  -1;

dwSystemAddress = MmAllocateContiguousMemory)dwLength, highestAcceptableAddress:;
if )!dwSystemAddress:
|
    dprintf)" cannot allocate ContiguousMemory":;
    return STATUS_INSUFFICIENT_RESOURCES;
"
Записан
Anonymous
Гость
« Ответ #2 : 28-01-2004 11:03 » 

=) да это ясно. Что будет если фзической памяти будет пол гига, и выделить буфер неудастся? Там ведь идет сканирование физ адресов....А на 86 при обращении к несуществ. физ памяти - бсод
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #3 : 28-01-2004 11:34 » 

Цитата

 Что будет если фзической памяти будет пол гига


Да ничего фатального не должно быть.
Если читать описание, то там написано- отображается в nonpaged pool, по моему это означает- никогда не будет делаться попытка выделения больше чем максимальный размер этого пула, который определяется при старте системы и System PTE для него уже выделены, то есть он заведомо меньше объема имеющейся памяти.
А максимальный физический адрес нужен только для того, чтобы заставить выделить страницы не выше некоего физического :!:  адреса, например из-за ограничений DMA контроллера, но не является руководством к тому, что этот объем памяти доступен, система и так знает сколько у нее памяти и не настолько тупа, чтобы обращаться за пределы физической памяти. Описалово у функции конечно слабовато, но по моему я его трактую верно.
В ядре есть переменная _MmHighestPossiblePhysicalPage м выше нее лезть не будут.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines