Alloue Bloc de Mémoire DOS
![[0.9]](../09.gif)
Alloue un bloc de mémoire dans l'étendue DOS c.a.d en dessous
du premier Mo . Ces blocs de mémoire sont typiquement utilisés à
échanger des données avec des programmes mode réel, TSRs, ou
pilotes depériphériques. La fonction retourne l'adresse de base du
segment mode réel du bloc et un ou plusieurs descripteurs qui
peuvent être utilisés par des applications mode protégé pour
accéder au bloc.
Appel avec

AX = 0100H
BX = nombre de paragraphes(16-octets) desirés
Retourne

si la fonction réussit
Carry flag = clear
AX = adresse mode réel du segment base du bloc
alloué
DX = sélecteur du bloc alloué
si la fonction échoue
Carry flag = set
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). |
8011H | descripteur indisponible |
BX = taille du plus grand bloc disponible en paragraphes
Notes
- Si la taille du bloc requis est supérieure à 64 Ko (BX >
1000H) et que le client est un program 16-bit, des descripteurs contigus
sont alloués et le sélecteur de base est retourné. Les sélecteurs
consécutifs pour le blocs de mémoire peut être calculé en utilisant la
valeur retournée par la fonction Lire Valeur d'Increment de Selecteur (Int 31H Fonction 0003H). chaque descripteur a une
limite de 64 Ko, excepté pour le dernier qui a une limite de taille du bloc
MOD 64 Ko.
- Si l'hôte DPMI est 32-bit, que le client est 16-bit,et que plus d'un
descripteur est alloué, la limite du premier descripteur sera fixée
à la taille du bloc entier . Subsequemment,les descripteurs ont
des limites comme décrit dans la Note précédente. Les hôtes DPMI16-bit
fixent toujours les limites du premier descripteur à 64 Ko même s'ils
s'exécutent sur un 80386 (ou supérieur).
- Quand le client est 32-bit, cette fonction alloue toujours un seul
descripteur.
- Les programmes client ne doivent jamais modifier ou liberer
les descripteurs alloués par cette fonction. La fonctionLibère Bloc de Mémoire DOS(Int 31H Fonction 0101H)
désalloue les descripteurs automatiquement.
- La fonction DOS d'allocation (Int 21H Fonction 48H) est utilisée.
- Voir les règles d'usage des descripteurs dans Appendix D.