bAzilew
Messages postés23Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention23 mars 2007
-
12 mars 2007 à 15:18
bAzilew
Messages postés23Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention23 mars 2007
-
12 mars 2007 à 17:09
Bonjour, je souhaiterais savoir si qqn connais le moyen de s'assurer de l'utilisation de la ram lors d'une grosse allocation de mémoire : comment sous windows, interdir à tout prix, ou sous control la migration dans le fichier de swap windows.
J'aimerai allouer un bloc, ou plusieurs bloc de mémoire et les laisser en RAM.
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201416 12 mars 2007 à 16:26
Salut,
En User-Mode, je crois que c'est impossible.
En Kernel-Mode c'est possible puisqu'on peut allouer de la mémoire physique. La zone mémoire ainsi allouée ne sera jamais passée sur disque. Il faudra donc faire un pilote (DRIVER). Le DDK est nécessaire. Pour allouer de la RAM en Kernel-Mode, on utilise la fonction ExAllocatePoolWithTag(). Le 1er paramètre permet de choisir le type de mémoire qu'on veut allouer. La taille de mémoire allouée doit être raisonable pour laisser le système fonctionner normalement.
Ton programme en User-Mode pourra donc communiquer avec le pilote via la fonction DeviceIoControl() pour pouvoir allouer cette RAM, la lire, y écrire et la libérer. Normalement ça devrait marcher.