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