Interruption 21h |
Fonction 59h, Sous-Fonction 0000h |
Demande du code d'erreur étendues |
---|---|---|
DOS 3.0+, OS/2, Windows NT |
Description
Cette fonction permet de connaître le code d'erreur étendu du système d'exploitation lorsqu'une erreur se produit.
Entrée
Registre | Valeur ou description |
---|---|
AH | 59h |
BX | 0000h |
Sortie
Registre | Valeur ou description | ||
---|---|---|---|
AX | Ce registre permet d'indiquer le code de retour : | ||
Code | Système | Description | |
0000h | DOS 2.0+ | Aucune erreur n'est apparue | |
0001h | DOS 2.0+ | Cette erreur permet d'indiquer que le numéro de la fonction n'est pas valide | |
0002h | DOS 2.0+ | Cette erreur permet d'indiquer que le fichier est introuvable | |
0003h | DOS 2.0+ | Cette erreur permet d'indiquer que le chemin est introuvable | |
0004h | DOS 2.0+ | Cette erreur permet d'indiquer qu'il y a trop de fichiers ouverts simultanément | |
0005h | DOS 2.0+ | Cette erreur permet d'indiquer que l'accès est refusé | |
0006h | DOS 2.0+ | Cette erreur permet d'indiquer que le descripteur de fichier est inconnu | |
0007h | DOS 2.0+ | Cette erreur permet d'indiquer que le bloc de contrôle de la mémoire détruit | |
0008h | DOS 2.0+ | Cette erreur permet d'indiquer que la mémoire disponible est insuffisante | |
0009h | DOS 2.0+ | Cette erreur permet d'indiquer que l'adresse de mémoire est incorrecte | |
000Ah | DOS 2.0+ | Cette erreur permet d'indiquer que l'environnement est incorrecte | |
000Bh | DOS 2.0+ | Cette erreur permet d'indiquer le format est invalide | |
000Ch | DOS 2.0+ | Cette erreur permet d'indiquer que le code d'accès est incorrecte | |
000Dh | DOS 2.0+ | Cette erreur permet d'indiquer que les données sont incorrectes | |
000Fh | DOS 2.0+ | Cette erreur permet d'indiquer que le lecteur (unité) est inconnu | |
0010h | DOS 2.0+ | Cette erreur permet d'indiquer qu'une tentative de destruction du répertoire courant a tenté d'être effectué. | |
0011h | DOS 2.0+ | Cette erreur permet d'indiquer que les périphériques sont différentes | |
0012h | DOS 2.0+ | Cette erreur permet d'indiquer qu'il n'y a plus d'autres fichiers dans la liste | |
0013h | DOS 3.0+ | Cette erreur permet d'indiquer que le support est protégé contre l'écriture | |
0014h | DOS 3.0+ | Cette erreur permet d'indiquer que le périphérique est inconnu | |
0015h | DOS 3.0+ | Cette erreur permet d'indiquer que le périphérique n'est pas prêt | |
0016h | DOS 3.0+ | Cette erreur permet d'indiquer que l'instruction est inconnue | |
0017h | DOS 3.0+ | Cette erreur permet d'indiquer qu'une erreur au niveau du CRC a été détecté | |
0018h | DOS 3.0+ | Cette erreur permet d'indiquer que la largeur de données sont incorrecte | |
0019h | DOS 3.0+ | Cette erreur permet d'indiquer que la recherche est infructueuse | |
001Ah | DOS 3.0+ | Cette erreur permet d'indiquer que le type de périphérique est inconnu | |
001Bh | DOS 3.0+ | Cette erreur permet d'indiquer que le secteur est introuvable | |
001Ch | DOS 3.0+ | Cette erreur permet d'indiquer que l'imprimante n'a plus de papier | |
001Dh | DOS 3.0+ | Cette erreur permet d'indiquer qu'une erreur a eu lieu au niveau de l'écriture | |
001Eh | DOS 3.0+ | Cette erreur permet d'indiquer qu'une erreur a eu lieu au niveau de la lecture | |
001Fh | DOS 3.0+ | Cette erreur permet d'indiquer qu'il s'agit d'une erreur de classe générale | |
0020h | DOS 3.0+ | Cette erreur permet d'indiquer qu'un problème a eu lieu au niveau du partage de ressource | |
0021h | DOS 3.0+ | Cette erreur permet d'indiquer qu'une violation du verrouillage a eu lieu | |
0022h | DOS 3.0+ | Cette erreur permet d'indiquer qu'un changement de disque invalide a été effectué | |
0023h | DOS 3.0+ | Cette erreur permet d'indiquer que le FCB est non disponible | |
0024h | DOS 3.0+ | Cette erreur permet d'indiquer que le dépassement du tampon des ressources s'est produit | |
0025h | DOS 4.0+ | Pays: Cette erreur permet d'indiquer que le code de page est invalide | |
0026h | DOS 4.0+ | Cette erreur permet d'indiquer qu'il est impossible de compléter l'opération de fichier (manque d'entrée) | |
0027h | DOS 4.0+ | Cette erreur permet d'indiquer que l'espace disque est insuffisant | |
0032h | Réseau OEM | Réseau: Cette erreur permet d'indiquer que l'appel réseau n'est pas supporté | |
0033h | Réseau OEM | Réseau: Cette erreur permet d'indiquer que l'ordinateur à distance ne répondant pas. | |
0034h | Réseau OEM | Réseau: Cette erreur permet d'indiquer qu'il y a une duplication du nom dans le réseau | |
0035h | Réseau OEM | Réseau: Cette erreur permet d'indiquer que le nom du réseau est introuvable | |
0036h | Réseau OEM | Réseau: Cette erreur permet d'indiquer le réseau est occupé | |
0037h | Réseau OEM | Réseau: Cette erreur permet d'indiquer que le périphérique réseau inexistante | |
0038h | Réseau OEM | Réseau: Cette erreur permet d'indiquer que la commande BIOS réseau est trop grande | |
0039h | Réseau OEM | Réseau: Cette erreur permet d'indiquer que le matérielle de l'adaptateur réseau cause des problèmes | |
003Ah | Réseau OEM | Réseau: Cette erreur permet d'indiquer que la réponse du réseau n'est pas valide | |
003Bh | Réseau OEM | Réseau: Cette erreur permet d'indiquer des problèmes inattendue de la part du réseau | |
003Ch | Réseau OEM | Réseau: Cette erreur permet d'indiquer que l'adaptateur est incompatible | |
003Dh | Réseau OEM | Réseau: Cette erreur permet d'indiquer que la queue d'impression est pleine | |
003Eh | Réseau OEM | Réseau: Cette erreur permet d'indiquer que la queue d'impression est encore pleine | |
003Fh | Réseau OEM | Réseau: Cette erreur permet d'indiquer que le fichier d'impression est effacé | |
0040h | Réseau OEM | Réseau: Cette erreur permet d'indiquer que le nom de réseau est effacé | |
0041h | Réseau OEM | Réseau: Cette erreur permet d'indiquer un accès refusé | |
0042h | Réseau OEM | Réseau: Cette erreur permet d'indiquer que le type de périphérique réseau est incorrecte | |
0043h | Réseau OEM | Réseau: Cette erreur permet d'indiquer le nom de réseau est introuvable | |
0044h | Réseau OEM | Réseau: Cette erreur permet d'indiquer que le nom de réseau est trop grand | |
0045h | Réseau OEM | Réseau: Cette erreur permet d'indiquer que la session de BIOS réseau est trop grand | |
0046h | Réseau OEM | Réseau: Cette erreur permet d'indiquer qu'il ne s'agit que d'un arrêt temporaire | |
0047h | Réseau OEM | Réseau: Cette erreur permet d'indiquer qu'un appel réseau est introuvable | |
0048h | Réseau OEM | Réseau: Cette erreur permet d'indiquer que l'arrêt a été provoquer au niveau de l'impression ou de la redirection | |
0049h | DOS/LANtastic | Réseau: Cette erreur permet d'indiquer que le logiciel réseau est non installé ou que la version réseau n'est pas valide | |
004Ah | DOS/LANtastic | Réseau: Cette erreur permet d'indiquer que l'adaptateur est fermé de façon subite ou que l'estimation de temps est expiré | |
004Bh | LANtastic | Réseau: Cette erreur permet d'indiquer que le mot de passe est expiré | |
004Ch | LANtastic | Réseau: Cette erreur permet d'indiquer que la tentative de branchement est invalide en ce moment | |
004Dh | LANtastic 3+ | Réseau: Cette erreur permet d'indiquer que l'excède de la limite disque a été signalé dans la station de travail | |
004Eh | LANtastic 3+ | Réseau: Cette erreur permet d'indiquer qu'il n'y a pas de branchement dans la station de travail | |
0050h | DOS | Cette erreur permet de signaler que le fichier est déjà existant | |
0052h | DOS | Cette erreur permet d'indiquer qu'il est impossible de créer un répertoire | |
0053h | DOS | Cette erreur permet d'indiquer qu'un problème à provoquer un Interruption 24h (Erreur critique) | |
0054h | DOS 3.3+ | Cette erreur permet d'indiquer que problème d'en dehors de la structure (trop de redirections) est rencontré | |
0055h | DOS 3.3+ | Cette erreur permet d'indiquer une redirection dupliquée | |
0056h | DOS 3.3+ | Cette erreur permet d'indiquer qu'un mot de passe n'est pas valide | |
0057h | DOS 3.3+ | Cette erreur permet d'indiquer que le paramètre n'est pas valide | |
0058h | DOS 3.3+ | Réseau: Cette erreur permet d'indiquer qu'une erreur d'écriture sur un périphérique réseau a eu lieu | |
0059h | DOS 4+ | Réseau: Cette erreur permet d'indiquer que la fonction n'est pas supporté par le réseau | |
005Ah | DOS 4+ | Réseau: Cette erreur permet d'indiquer que les composantes systèmes requis ne sont pas installé | |
0064h | Pilote CD-ROM | CD-ROM: Cette erreur permet d'indiquer qu'une erreur totalement inconnu s'est produite sur un CD-ROM | |
0065h | Pilote CD-ROM | CD-ROM: Cette erreur permet d'indiquer que le périphérique n'est pas prêt | |
0066h | Pilote CD-ROM | CD-ROM: Cette erreur permet d'indiquer que la mémoire EMS n'est pas d'une longueur suffisante | |
0067h | Pilote CD-ROM | CD-ROM: Cette erreur permet d'indiquer que le format CD-ROM n'est pas High Sierra ou ISO-9660 | |
0068h | Pilote CD-ROM | CD-ROM: Cette erreur permet d'indiquer que la porte du périphérique n'est pas ouverte | |
0069h | DOS 4+ | Cette erreur permet d'indiquer que le propriétaire ne réagit plus | |
006Ah | DOS 4+ | Cette erreur permet d'indiquer le temps limite est excédé | |
006Bh | DOS 4+ | Cette erreur permet d'indiquer qu'un changement dans l'unité B est requis | |
006Ch | DOS 4+ | Cette erreur permet que l'unité est verrouillé par un autre processus | |
006Dh | DOS 5+ | Cette erreur permet d'indiquer l'arrêter du canal | |
006Eh | DOS 5+ | Cette erreur permet d'indiquer que la création ou l'ouvrir du canal a échoué | |
006Fh | DOS 5+ | Cette erreur permet d'indiquer un débordement du tampon du canal | |
0070h | DOS 5+ | Cette erreur permet d'indiquer que le disque est plein | |
0071h | DOS 5+ | Cette erreur permet d'indiquer qu'il n'y a plus de descripteur de fichier disponible | |
BH | Ce registre permet d'indiquer la cause de l'incident : | ||
Code | Description | ||
0001h | La cause de l'incident est le manque de place sur le support | ||
0002h | La cause de l'incident a été provoqué par interdit temporaire d'accès | ||
0003h | La cause de l'incident a été provoqué par un accès non autorisé | ||
0004h | La cause de l'incident a été provoqué par une erreur du logiciel répercuter sur le système d'exploitation | ||
0005h | La cause de l'incident a été provoqué par un problème électronique | ||
0006h | La cause de l'incident a été provoqué par un logiciel système mais pas par l'application en cours | ||
0007h | La cause de l'incident a été provoqué par l'application en cours | ||
0008h | La cause de l'incident a été provoqué par un fichier introuvable | ||
0009h | La cause de l'incident a été provoqué par un fichier au format incorrecte ou erroné | ||
000Ah | La cause de l'incident a été provoqué par un fichier verrouillé | ||
000Bh | La cause de l'incident a été provoqué par une erreur provenant d'un périphérique | ||
000Ch | La cause de l'incident a été provoqué à cause d'une collision avec un autre système ou des données déjà existantes | ||
000Dh | La cause de l'incident a été provoqué par des causes d'autres niveau | ||
000Eh | La cause de l'incident a été provoqué par des causes indéterminé | ||
000Fh | La cause de l'incident a été provoqué à cause de l'heure | ||
BL | Ce registre permet d'indiquer la réaction proposée : | ||
Code | Description | ||
0001h | Il est recommandé de répété l'opération jusqu'à ce que l'utilisateur décide d'abandonner | ||
0002h | Il est recommandé de répété l'opération plusieurs fois et ensuite de proposé à l'utilisateur le soit de décide d'abandonner ou de poursuivre | ||
0003h | Il est recommandé de demander à l'utilisateur d'entrée à nouveau les données | ||
0004h | Il est recommandé d'arrêter le programme par le processus normal | ||
0005h | Il est recommandé d'arrêter immédiatement le programme | ||
0006h | Il est recommandé d'ignorer l'erreur | ||
0007h | Il est recommandé de demander à l'utilisateur de corriger l'erreur et de recommencer | ||
CH | Ce registre permet d'indiquer l'origine de l'erreur : | ||
Code | Description | ||
0001h | Ce code indique que l'origine est inconnu | ||
0002h | Ce code indique que l'origine provient d'un périphérique de bloc comme la disquette, le disque dur,... | ||
0003h | Ce code indique que l'origine provient du réseau | ||
0004h | Ce code indique que l'origine provient d'un périphérique de port série ou d'une devise de caractère | ||
0005h | Ce code indique que l'origine provient de la mémoire RAM |
Remarques
- Cette fonction peut être appelée après tout autre appel de fonction de l'interruption 21h ayant renvoyé un état d'erreur, afin d'obtenir des informations plus détaillées sur le type d'erreur et l'action recommandée. Si l'appel de la fonction de l'interruption 21h précédent n'avait pas d'erreur, la valeur 0000h est renvoyé dans le registre AX. Cette fonction peut également être appelée lors de l'exécution d'un gestionnaire d'erreurs critiques (Interruption 24h).
- Le contenu des registres CL, DX, SI, DI, BP, DS et ES est détruit par cette fonction.
- Notez que les codes d'erreur étendus 13h à 1Fh (19 à 31) et 34 (22h) correspondent exactement aux codes d'erreur 00h à 0Ch (0 à 12) et 0Fh (15) renvoyés par l'interruption 24h.
- Vous ne devez pas coder vos programmes pour reconnaître uniquement des numéros d'erreur spécifiques si vous souhaitez assurer une compatibilité ascendante, car de nouveaux codes d'erreur sont ajoutés dans chaque version de DOS.
Voir également
Langage de programmation - C pour Windows - API de Windows - «GetLastError»
Références
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 273 à 277.
Dernière mise à jour : Jeudi, le 3 mars 2016