Interruption 21h |
Fonction 5Ch |
Verrouillage/déverrouillage d'une région de fichier |
---|---|---|
DOS 3.0+ et Share, OS/2, Windows NT |
Description
Cette fonction permet le verrouillage et le déverrouillage d'une région de fichier.
Entrée
Registre | Valeur ou description | |
---|---|---|
AH | 5Ch | |
AL | Ce registre permet d'indiquer le code de mode de verrou: | |
Code de mode | Description | |
0 | Ce code de mode permet de verrouiller une région de fichier | |
1 | Ce code de mode permet de déverrouiller une région de fichier | |
BX | Handle | |
CX:DX | Ce registre permet d'indiquer la position dans le fichier | |
SI:DI | Ce registre permet d'indiquer la taille de la région |
Sortie
Registre | Valeur ou description | |||
---|---|---|---|---|
FC | Ce registre de drapeau de retenue permet d'indiquer le résultat de l'opération : | |||
Valeur | Description | |||
0 | Cette valeur permet d'indiquer que l'opération a été un succès | |||
1 | Cette valeur permet d'indiquer une erreur, dans ce cas : | |||
Registre | Description | |||
AX | Ce registre permet d'indiquer le code d'erreur : | |||
Valeur | Description | |||
01h | Cette erreur permet d'indiquer que le numéro de la fonction n'est pas valide | |||
06h | Cette erreur permet d'indiquer que le Handle est inconnu | |||
21h | Cette erreur permet d'indiquer qu'une violation du verrouillage a eu lieu | |||
24h | Cette erreur permet d'indiquer que le dépassement du tampon des ressources s'est produit |
Remarques
- Cette fonction est utile pour la synchronisation de fichiers et les enregistrements dans un environnement ou un réseau multitâche. L'accès au fichier dans son ensemble est contrôlé par les paramètres d'attribut et de partage de fichiers passés dans les appels ouverts ou créés et par les attributs du fichier, étant entreposés dans son entrée de répertoire.
- L'emplacement de début dans le fichier à verrouiller ou à déverrouiller est fourni sous la forme d'un entier positif à double précision, étant un octet de déplacement dans le fichier. La longueur de la région à verrouiller ou déverrouiller est également fournie sous la forme d'un entier positif à double précision.
- Pour chaque appel destiné à verrouiller une région d'un fichier, il doit y avoir un appel de déverrouillage ultérieur avec exactement le même déplacement et la même longueur de fichier.
- Le verrouillage au-delà de la fin du fichier actuel n'est pas une erreur.
- Les identificateurs de descripteur Handle en double créées avec l'interruption 21h, fonction 45h, ou les identificateurs de descripteur Handle redirigées vers le fichier avec l'interruption 21h, fonction 46h, sont autorisées à accéder aux régions verrouillées dans le même processus.
- Les programmes chargés avec l'appel EXEC (Interruption 21h, fonction 4Bh) héritent des identificateurs de descripteur Handle de leur parent mais pas de verrous actifs.
- Si un processus se termine sans libérer les verrous actifs sur un fichier, le résultat n'est pas défini. Par conséquent, les programmes utilisant cette fonction doivent installer leurs propres gestionnaires d'interruption 23h et d'interruption 24h afin qu'ils ne puissent pas être arrêtés de manière inattendue.
Références
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 280 à 283.
Dernière mise à jour : Jeudi, le 3 mars 2016