Change la Taille d'un Bloc de Mémoire DOS
![[0.9]](../09.gif)
Change la taille d'un bloc de mémoire précedemment alloué avec
la fonction Alloue Bloc de Mémoire DOS(Int 31H
Fonction 0100H).
Appel avec

AX = 0102H
BX = nouvelle taille du bloc en paragraphes(16 octets)
DX = sélecteur du bloc à modifier
Retourne

si la fonction réussit
Carry flag = 0
Carry flag = 1
AX = code d'erreur
0007H | blocs de contrôle mémoire détruits (également retournée
par les hôtes DPMI 0.9 ) |
0008H | mémoire insuffisante (également retournée par les hôtes
DPMI 0.9). |
0009H | segment de mémoire specifié incorrect (également
retournée par les hôtes DPMI 0.9). |
8011H | descripteur indisponible |
8022H | sélecteur invalide |
BX = taille maximum possible de bloc (paragraphes)
Notes
- Les requêtes pour augmenter la taille d'un bloc de mémoire existant
peuvent échouer à cause des allocations précedentes qui causent une
fragmentation de la mémoire DOS , ou une mémoire restante insuffisante .
De plus,la fonction échouera si le bloc dépasse 64 Ko et que le descripteur
suivant dans la LDT n'est pas disponible.
- Une requête pour diminuer la taille d'un bloc de mémoire peut
libérer certains descripteurs précedemment alloués au bloc à libérer
et amener la limite du nouveau dernier descripteur du bloc à changer.
- Sous un hôte DPMI 1.0 , tout registre de segment contenant un
selecteur modifié est rechargé par cette fonction et tout registre de segment
contenant un a sélecteur libéré est mis à zéro.
- Les programmes client ne doivent jamais modifier ou libérer les descripteurs
alloués par cette fonction. La fonction Libère Bloc de Mémoire DOS(Int 31H Fonction 0101H) désalloue les descripteurs
automatiquement.
- Voir les règles d'usage des descripteurs dans Appendix D.