Marquer une Region Mode Réel comme Pageable
![[0.9]](../09.gif)
Avise l'hôte DPMI que la mémoire specifiée en dessous du premier Mo
peut être paginée sur le disque.
Appel avec

AX = 0602H
BX:CX = adresse linéaire de départ de la mémoire
à marquer comme paginable
SI:DI = taille de la région à marquer (octets)
Retourne

si la fonction réussit
Carry flag = 0
si la fonction échoue
Carry flag = 1
AX = code d'erreur
8002H | état invalide (région déjà marquée comme paginable) |
8025H | adresse linéaire invalide (région est au dessus du premier 1 Mo ) |
Notes
- Si la fonction renvoie une erreur, aucune mémoire n'a été marquée
comme paginable.
- Si la région specifiée déborde sur une page au début ou à la fin
de la région, la page sera marquée comme non paginable.
- L'information de paginabilité pour une région mode réel est conservée
comme un état binaire , et non un compte. Par conséquent, les appels multiple
à cette fonction pour la même région n'ont pas d'effet.
- Pour compatibilité avec les hôtes DPMI version 0.9 , un client doit
appeler l' (Int 31H Fonction 0603H)
pour reverrouiller la région mémoire avant de se terminer.
La mémoire qui reste déverrouillée après la terminaison du client
peut provoquer des fautes de page fatales quand un autre programme
est executé dans le même espace d'adressage . Les hôtesDPMI 1.0
reverrouillent automatiquement la mémoire mode réel à la
cloture du client .
- Sous certain hôtes DPMI , toute la mémoire conventionelle
peut être verrouillée par défaut. Si un programme mode protégé utilise
le premier megaoctet de l'espace d'adressage, il est recommendé que
cette fonction soit utilisée pour empêcher le verouillage automatique de
page pour les régions de mémoire qui ne sont pas atteintes au moment
d'une interruption .
- Le client ne doit pas marquer la mémoire comme paginable dans les
régions qui ne lui appartienne pas; c.a.d qu'il peut marquer comme paginable
seule la mémoire precedemment allouée avec l'Int 31H Fonction
0100H ou par un appel direct à DOS via les fonctions de traduction.
Par exemple, marquer toute la mémoire DOS comme paginable sous certains hôtes DPMI
peut provoquer des fautes de page à l'intérieur de DOS, provoquant un plantage.
Ainsi, un client ne doit pas marquer la zone de donnée de l'hôte DPMI comme
paginable.
- Notez que l'espace d'adressage marqué comme paginable par cette fonction
peut être verrouillé en utilisant l' (
Int 31H Fonction 0600H). Cette fonction est juste un service d'avertissement
pour permettre la "dépagination" de la mémoire qui n'a pas besoin d'être
vérouillée; il désactive tout vérouillage automatique de la mémoire mode réel
réalisé par l'hôte DPMI.
- Cette fonction est ignorée par les implémentations DPMI qui ne
supportent pas la mémoire virtuelle ;la fonction renverra le flag Carry
à zéro pour indiquer la réussite, mais n'aura pas d'autre effet. Les hôtes DPMI
qui supportent la mémoire virtuelle doivent aussi choisir d'ignorer
cette fonction mais ces hôtes sont capables de gérer les fautes de page de
manière transparente à des points arbitraires pendant l'exécution d'un client,
inclus dans les gestionnaires d'interruption et d'exception .