Будет ли блок памяти, возвращаемый VirtualAlloc, всегда выравниваться по размеру страницы? Другими словами, будет ли модуль всегда равен нулю возвращаемого значения из VirtualAlloc и размера страницы?
Ну да.
В конце концов, вы вызываете VirtualAlloc для выделения некоторых страниц памяти. Вы не можете выделить только 1 байт без получения всей страницы, поэтому имеет смысл получить буфер, выровненный по размеру страницы.
Из документации MSDN для VirtualAlloc:
Если память уже зарезервирована и фиксируется, адрес округляется до границы следующей страницы.Так что ответ - да, если вы фиксируете память, а не просто резервируете ее.