Podemos fazer alguma suposição sobre SYSTEM_INFO dwPageSize em sistemas diferentes, ao direcionar a mesma arquitetura (ou seja, x86_64)?
Eu gero algum código nativo personalizado, que é carregado junto com um aplicativo C++ via VirtualAlloc. Este código possui 3 seções diferentes (código, cdata, variáveis estáticas dinâmicas), que necessitam de proteções diferentes (execução; leitura; leitura-gravação) via VirtualProtect e, portanto, precisam estar em páginas diferentes. O código faz referência a cdata e variáveis estáticas por meio de endereçamento relativo ao RIP.
Estou me perguntando se posso assumir que, digamos, ao construir em x64, dwPageSize é 4096, ele também terá o mesmo valor em outros sistemas x64 (ou pelo menos menores, mas nunca maiores)? Nesse caso, posso simplesmente considerar os endereços relativos ao RIP como estão, porque posso garantir que todos os dados sejam colocados nos mesmos deslocamentos relativos do tamanho da página. Se as páginas no sistema de destino pudessem ser potencialmente maiores, eu precisaria consertar essas compensações ao carregar o código.
O tamanho da página geralmente é determinado pela própria arquitetura do processador, embora às vezes uma arquitetura de processador possa suportar vários tamanhos de página. No entanto, a Microsoft decidiu um tamanho de página específico por arquitetura, portanto, é realmente seguro assumir que o tamanho da página será o mesmo para uma determinada arquitetura (e número de bits do Windows), independentemente da máquina em que o código está sendo executado.
A propósito, em todas as arquiteturas suportadas atualmente, o tamanho da página é de 4 KB. (Algumas arquiteturas descontinuadas usavam 8 KB.) Veja aqui uma lista completa.
Especialmente em relação ao x86-64 você pode ter certeza que isso não mudará porque o processador não oferece outra opção além de 4KB (para páginas pequenas). A Microsoft pode , teoricamente, alterá-lo em algumas arquiteturas como ARM, mas isso seria bastante inesperado para mim, pois causaria muitos problemas de compatibilidade sem nenhuma vantagem perceptível.