Libère Mémoire Partagée
![[1.0]](../10.gif)
Désalloue un bloc de mémoire partagée .
Appel avec

AX = 0D01H
SI:DI = handle du bloc de mémoire partagée à libérer
Retourne

si la fonction réussit
Carry flag = 0
si la fonction échoue
Carry flag = 1
AX = code d'erreur
Notes
- Le handle de mémoire partagée devient invalide après la
désallocation du bloc, et ne doit plus être utilisé dans d'autres appels
de fonction (comme la sérialisation).
- L'hôte tient les comptes d'utilisation des machines virtuelles
et un compte global d'utilisation pour chaque bloc de mémoire partagée .
Un compte d'utilisation de machine virtuelle est le nombre d'appels
d'allocation (Int 31H Fonction
0D00H) qui ont été emis par une machine virtuelle particulière pour
le bloc partagé, pendant que le compte global d'utilisation correspond au
nombre de machines virtuelles qui ont accedé au bloc. Quand le compte d'une
machine virtuelle atteint zéro, le client dans cette machine n'a plus
l'addressabilité au bloc de mémoire partagée; quand le compte
global atteint zéro, le bloc de mémoire est détruit par l'hôte.
- Il est de la responsabilité du client de libérer tout descripteurs qui
aurait été alloué pour adresser le bloc de mémoire partagée .
- Les applications ne doivent pas dependre de cette fonction pour libérer
une précédente sérialisation réussie sur le même bloc de mémoire partagée;.
La sérialisation est libérée par cette fonction seulement quand le compte d'utilisation
de la machines virtuelle atteint 0 (c.a.d que le client n'a plus accès au
bloc de mémoire partagée).