Mémoire paginée, et RAM

Résolu
bAzilew Messages postés 23 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 23 mars 2007 - 12 mars 2007 à 15:18
bAzilew Messages postés 23 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 23 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.

Merci ;)

zat All fo'kz

3 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
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.
3
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
12 mars 2007 à 16:51
J'ai oublié de mettre un lien pour la foncion ExAllocatePoolWithTag(). Le voici:
http://www.osronline.com/ddkx/kmarch/k102_2omq.htm
3
bAzilew Messages postés 23 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 23 mars 2007
12 mars 2007 à 17:09
Je vais tester ca . Merci beaucoup pour ta réponse précise :)))
zat All fo'kz
0
Rejoignez-nous