IMAGE_FILE_LARGE_ADDRESS_AWARE
est uniquement pertinent pour les processus 32 bits. La raison en est que l'espace d'adressage sur Windows 32 bits est divisé en deux: 2 Go pour l'espace noyau et 2 Go pour l'espace utilisateur. Pour répondre à 2 Go, vous avez besoin de 31 bits. C'est à dire. les pointeurs dans une application 32 bits n'ont pas besoin du dernier bit pour l'adressage.
Certaines applications peuvent avoir utilisé ce bit supplémentaire à des fins personnalisées, donc si le gestionnaire de mémoire Windows leur donne soudainement une véritable adresse 32 bits, ils ne peuvent pas gérer cela. En activant l'indicateur IMAGE_FILE_LARGE_ADDRESS_AWARE
, l'application indique au système d'exploitation qu'elle peut gérer l'intégralité de l'espace adressable de 32 bits.
Si vous exécutez une application IMAGE_FILE_LARGE_ADDRESS_AWARE
sur Windows 32 bits, vous pouvez accéder à 3 GB. Si vous exécutez la même application 32 bits sur Windows 64 bits, le processus récupère l'intégralité de l'espace d'adressage de 4 Go. Si vous exécutez une application 64 bits sous Windows 64 bits, l'espace d'adressage de l'utilisateur est de 8 To (avec 8 To supplémentaires réservés à l'espace d'adressage du noyau). Les applications .NET définies sur AnyCPU seront automatiquement des applications 64 bits sur x64, vous n'avez donc rien à faire pour traiter la mémoire supplémentaire. Gardez à l'esprit, cependant, que le CLR impose une limite de 2 Go sur un seul objet, alors même si votre application peut utiliser beaucoup de mémoire, vous ne pouvez pas créer une baie de 2 To par exemple. Plus d'informations sur cette question: Single objects still limited to 2 GB in size in CLR 4.0?
et cela sans rien faire d'autre pour définir IMAGE_FILE_LARGE_ADDRESS_AWARE. Par exemple, le processus 64 bits a ce commutateur. Ai-je raison? – SysAdmin
Si nous nous limitons à Windows x64: je pense que vous voulez dire * vous pouvez avoir accès à 8To *, puisque vous êtes limité par la mémoire physique disponible et par le lieu de stockage du fichier de page. Nous n'avons pas encore de disques durs de 8 To. –