Notez que les hôte DPMI 0.9 ne sont pas obligés de retourner un code d'erreur valide dans AX. Vous devez seulement vous reposer sur le flag carry si une erreur se produit.
Pratiquement toutes les appel aux fonction Int 31H peuvent échouer, à cause d'erreurs client,de ressources indisponibles,ou de problèmes internes à l'hôte . La plupart des echecs dues aux erreurs client et tous les echecs du a des ressources indisponibles sont rapportées au client via un code d'erreur. Certaines erreurs client, comme transmettre un pointeur invalide dans un appel de fonction , peuvent pousser l'hôte à la faute; le client peut detecter ces evenements en installant un gestionnaire d'exception.
Les erreurs internes de l'hôte sont gérées d'une manière specifique à l'hôte et généralement non reportées au clients avec un code d'erreur. La seule exception à ceci est le cas ou l'hôte ne peut allouer des ressources internes. Toutes les fonctions Int 31H sont capable de retourner un code d'erreur 8010H pour indiquer cette condition.
Un hôte DPMI 1.0 signale une erreur en retournant d'une fonction avec le flag Carry posé et an code d'erreur dans AX. Si le code d'erreur a le bit 15 a 0, l'hôte DPMI passe un code d'erreur DOS au client; pour une liste de ces code d'erreurs, consultez une référence technique DOS. Si le code d'erreur a le bit 15 posé (1), il est généré dans l'hôte DPMI , et est interpreté en accord avec la liste ci-dessous. Tous les hôtes DPMI sont obligés de tester les conditions d'erreur listées dans cette spécification, et doivent retourner les codes d'erreurs qui sont documentés pour chaque fonction.
Si Int 31H est invoquée avec un numéro de fonction qui n'est pas defini dans cette specification, l'hôte DPMI retournera le code d'erreur 8001H "fonction non supportée" . La table liste tous les codes d'erreurs definis et leurs messages. Les code d'erreurs inutilisés sont reservés pour les prochaines versions des spécifications DPMI .
code d'erreur | Nom | Explication |
---|---|---|
0007H | bloc de configuration mémoire abimés | Le système d'exploitation a detecté une corruption de la mémoire mode réel. |
0008H | mémoire insuffisante | Il n'y a pas assez de mémoire mode réel pour satisfaire la requète. |
0009H | Segment mémoire incorrect specifié | La valeur de segment specifiée n'a pas été fornie par le système d'exploitation |
8001H | Fonction non supportée | Retourné en réponse a tout appel de fonction non implementé par cet hôte. |
8002H | Etat invalide | Un objet est dans le mauvais état pour l'opération demandée. |
8003H | Integrité système | L'opèration requise met en danger l'integrité du système ,ex, une requète de projection d'adresse linéaire sur du code ou des données système . |
8004H | Impasse | L'hôte a detecté une situation inextricable. |
8005H | Requète annulée | Une requète d'attente de sérialisation a été annulée. |
8010H | Ressource indisponible | L'hôte DPMI ne peut pas allouer de ressources internes pour completer une opération. |
8011H | Descripteur indisponible | L'hôte est incapable d'allouer un descripteur. |
8012H | Mémoire linéaire indisponible | L'hôte est incapable d'allouer la mémoire linéaire requise. |
8013H | Mémoire physique indisponible | L'hôte est incapable d'allouer la mémoire physique requise. |
8014H | Backing store indisponible | L'hôte est incapable d'allouer le backing store requis. |
8015H | Callback indisponible | L'hôte est incapable d'allouer l'adress de callback requise . |
8016H | Handle indisponible | L'hôte est incapable d'allouer le handle requis. |
8017H | Compte de verrous dépassé | Une opération de vérouillage dépasse le compte maximum tenu par l'hôte. |
8018H | Ressource détenue exclusivement | Une requète de sérialisation d'un bloc de mémoire partagée ne peut être satisfaite car un autre client possède déjà la sérialisation exclusive. |
8019H | Ressource détenue partagée | Une requète de sérialisation exclusive d'un bloc de mémoire partagée ne peut être satisfaite car un autre client possède déjà la sérialisation patagée. |
8021H | valeur invalide | Un paramètre numérique ou un flag a une valeur invalide . |
8022H | sélecteur invalide | Un sélecteur ne correspond pas a un descripteur valide . |
8023H | handle invalide | Un paramètre handle est invalide. |
8024H | callback invalide | Un paramètre callback est invalide. |
8025H | Adresse linéaire invalide | Un intervalle d'adresse linéaire (fournie comme paramètre ou impliquée par l'appel est invalide. |
8026H | requète invalide | La requète n'est pas supportée par le matériel présent. |