Libère la Sérialisation de la Mémoire Partagée
![[1.0]](../10.gif)
Libère la sérialisation d'un bloc de mémoire partagée
obtenu avec l'Int 31H Fonction 0D02H.
Appel avec

AX = 0D03H
SI:DI = handle du bloc de mémoire partagée
DX = flags des options
Bit | Signification |
0 | 0 = libère sérialisation exclusive |
1 = libère sérialisation partagée |
1 | 0 = ne libère pas sérialisation en attente |
1 = libère sérialisation en attente(voir Note) |
2-15 | reservé, doit être zéro |
Retourne

si la fonction réussit
Carry flag = 0
si la fonction échoue
Carry flag = 1
AX = code d'erreur
8002H | état invalide ( le client ne possède pas
de sérialisation réussie du type specifié ) |
8023H | handle invalide |
Notes
- Pour chaque client, l'hôte DPMI maintient quatre comptes
de sérialisation locaux différents (exclusive,partagée ,attendant le
partage, et attendant l'exclusivité) pour chaque bloc de mémoire partagée,
en même temps qu'un compte global de sérialisation . Le compte global de sérialisation
est mis à jour seulement quand la somme des comptes de sérialisation exclusive
et partagée d'une machine virtuelle passe de 0 à 1 (sérialise) ou de 1 à 0 (libère).
- Un gestionnaire d'interruption client peut appeler cette fonction
avec le bit 1 de DX posé pour annuler une requète de sérialisation qui a
suspendu le thread d'exécution principal du même client.
Dans ces cas,la requète de sérialisation originale retournera avec le flag
Carry posé et AX = 8005H.