Modèle de mémoire Windows
La mémoire Windows est virtualisée. Les applications n'ont pas d'accès direct aux adresses mémoire, ce qui permet à Windows de déplacer la mémoire physique et de permuter la mémoire dans et hors d'un fichier de permutation (appelé pagefile.sys).
L'allocation de mémoire est réalisée généralement en deux étapes. Une allocation simple affecte un descripteur (handle) à une application. Aucune mémoire physique n'est réservée. Il existe plus de descripteur que de mémoire physique. Pour que de la mémoire soit utilisée, elle doit être 'engagée'. A ce stade, un descripteur fait référence à de la mémoire physique. Il ne s'agit pas nécessairement de toute la mémoire demandée.
Par exemple, la pile allouée à une unité d'exécution reçoit généralement une petite quantité de mémoire. En cas de débordement de la pile, une exception est émise et le système d'exploitation alloue davantage de mémoire pour permettre à la pile de croître.
La manipulation de la mémoire par les programmeurs Windows est cachée dans les bibliothèques fournies pour l'environnement de programmation choisi. Dans l'environnement C, les routines de base de manipulation de la mémoire sont les fonctions familières malloc et free. Les API Windows se trouvent au-dessus de ces bibliothèques et fournissent généralement un niveau d'abstraction supplémentaire.
Pour un programmeur, Windows fournit un modèle de mémoire à plat, dans lequel les adresses s'exécutent à partir de 0 jusqu'à la limite autorisée pour une application. Les applications peuvent décider de segmenter leur mémoire. Dans un vidage, le programmeur voit des groupes d'adresses mémoire discrètes.