0xC9 de vérification des bogues : DRIVER_VERIFIER_IOMANAGER_VIOLATION
La vérification des bogues DRIVER_VERIFIER_IOMANAGER_VIOLATION a la valeur 0x000000C9. Il s’agit du code de vérification des bogues pour toutes les violations d’E/S du vérificateur de pilote.
Important
Cette rubrique s’adresse aux développeurs. Si vous êtes un client qui a reçu un code d’erreur d’écran bleu lors de l’utilisation de votre ordinateur, consultez Résoudre les erreurs d’écran bleu.
Paramètres DRIVER_VERIFIER_IOMANAGER_VIOLATION
Lorsque le vérificateur de pilote est actif et que la vérification d’E/S est sélectionnée, diverses violations d’E/S entraînent l’émission de cette vérification de bogue. Le paramètre 1 identifie le type de violation.
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0x01 |
Adresse de l’IRP libérée |
0 |
0 |
Le pilote a tenté de libérer un objet dont le type n’est pas IO_TYPE_IRP. |
0x02 |
Adresse de l’IRP libérée |
0 |
0 |
Le pilote a tenté de libérer un IRP qui est toujours associé à un thread. |
0x03 |
Adresse de l’IRP envoyée |
0 |
0 |
Le pilote a passé IoCallDriver un type IRP non égal à IRP_TYPE. |
0x04 |
Adresse de l’objet d’appareil |
0 |
0 |
Le pilote a transmis à IoCallDriver un objet d’appareil non valide. |
0x05 |
Adresse de l’objet de périphérique associé au pilote incriminé |
IRQL avant IoCallDriver |
IRQL après IoCallDriver |
Le runtime d’intégration a été modifié lors d’un appel à la routine de répartition du pilote. |
0x06 |
État IRP |
Adresse de l’IRP en cours de réalisation |
0 |
Le pilote appelé IoCompleteRequest avec un état marqué comme en attente (ou égal à -1). |
0x07 |
Adresse de la routine d’annulation |
Adresse de l’IRP en cours de réalisation |
0 |
Le pilote appelé IoCompleteRequest alors que sa routine d’annulation était toujours définie. |
0x08 |
Adresse de l’objet d’appareil |
Code de fonction principale IRP |
Code d’état d’exception |
Le pilote a passé IoBuildAsynchronousFsdRequest à une mémoire tampon non valide. |
0x09 |
Adresse de l’objet d’appareil |
Code de contrôle d’E/S |
Code d’état d’exception |
Le pilote a passé IoBuildDeviceIoControlRequest à une mémoire tampon non valide. |
0x10 |
IRQL actuel |
Réservé |
Réservé |
IoCallDriver a été appelé ci-dessus DISPATCH_LEVEL. |
0x11 |
Adresse de routine de distribution d’E/S rapide du pilote |
IRQL avant d’appeler la routine de répartition des pilotes |
IRQL actuel |
IoCallDriver a été appelé ci-dessus DISPATCH_LEVEL. |
0x12 |
Adresse de routine de distribution du pilote |
IRQL avant d’appeler la routine de répartition des pilotes |
IRQL actuel |
IoCallDriver a été appelé ci-dessus DISPATCH_LEVEL. |
0x0A |
Adresse de l’objet d’appareil |
0 |
0 |
Le pilote a passé IoInitializeTimer à un objet d’appareil avec un minuteur déjà initialisé. |
0x0C |
Adresse du bloc d’état d’E/S |
0 |
0 |
Le pilote a passé un bloc d’état d’E/S à un IRP, mais ce bloc est alloué sur une pile qui a déjà déwound au-delà de ce point. |
0x0D |
Adresse de l’objet d’événement utilisateur |
0 |
0 |
Le pilote a passé un événement utilisateur à un IRP, mais cet événement est alloué sur une pile qui a déjà déwound au-delà de ce point. |
0x0E |
IRQL actuel |
Adresse du protocole IRP |
0 |
Le pilote appelé IoCompleteRequest avec IRQL > DISPATCH_LEVEL. |
0x0F |
Adresse de l’objet d’appareil auquel l’IRP est envoyé |
Pointeur vers l’IRP |
Pointeur vers l’objet de fichier |
Le pilote a envoyé une demande de création avec un objet de fichier qui a été fermé ou qui avait son annulation ouverte. |
Outre les erreurs mentionnées dans le tableau précédent, il existe un certain nombre d’erreurs de vérification d’E/S qui entraînent l’arrêt du vérificateur de pilote sur le système, mais qui ne sont pas réellement des vérifications de bogues.
Ces erreurs entraînent l’affichage des messages sur l’écran bleu, dans un fichier de vidage sur incident et dans un débogueur de noyau. Ces messages s’affichent différemment dans chacun de ces emplacements. Lorsque ces erreurs se produisent, le code de vérification de bogue hexadécimal 0xC9 et la chaîne de vérification des bogues DRIVER_VERIFIER_IOMANAGER_VIOLATION n’apparaissent pas sur l’écran bleu ou dans le débogueur, bien qu’ils apparaissent dans un fichier de vidage sur incident.
Sur l’écran bleu, les données suivantes s’affichent :
Message D’ERREUR DE VÉRIFICATION DU SYSTÈME D’E/S.
Message WDM DRIVER ERRORXXX, où XXX est un code hexadécimal représentant l’erreur spécifique. (Consultez le tableau ci-dessous pour obtenir la liste des codes d’erreur d’E/S et leurs significations.)
Nom du pilote qui a provoqué l’erreur.
En règle générale, l’adresse dans le code du pilote où l’erreur a été détectée (paramètre 2).
Si un vidage sur incident en mode noyau a été activé, les informations suivantes s’affichent dans le fichier de vidage sur incident :
Message BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION).
Code d’erreur d’E/S hexadécimal. (Consultez le tableau ci-dessous pour obtenir la liste des codes d’erreur d’E/S et leurs significations.)
En règle générale, l’adresse dans le code du pilote où l’erreur a été détectée (paramètre 2).
Si un débogueur de noyau est attaché au système qui a provoqué cette violation, les informations suivantes sont envoyées au débogueur :
Message WDM DRIVER ERROR, ainsi qu’une évaluation de la gravité de l’erreur.
Nom du pilote qui a provoqué l’erreur.
Chaîne descriptive qui explique la cause de cette erreur. Souvent, des informations supplémentaires sont transmises, telles qu’un pointeur vers l’IRP ou un pointeur vers l’objet d’appareil ou les informations IRQL. (Consultez le tableau ci-dessous pour obtenir la liste de ces chaînes descriptives et les informations supplémentaires spécifiées.)
Requête pour une action supplémentaire. Les réponses possibles sont b (arrêt), i (ignorer), z (zap), r (supprimer) ou d (désactiver). Demander au système d’exploitation de continuer vous permet de voir ce qui se passerait « en bas de la ligne » si cette erreur n’avait pas eu lieu. Bien sûr, cela entraînera souvent des vérifications de bogues supplémentaires. L’option « zap » supprime en fait le point d’arrêt qui a provoqué cette erreur.
Note Aucune autre vérification de bogue ne peut être ignorée de cette manière. Seuls ce type d’erreurs de vérification d’E/S peuvent être ignorées, et même ces erreurs ne peuvent être ignorées que si un débogueur de noyau est attaché.
Le tableau suivant répertorie les erreurs de vérification d’E/S qui peuvent apparaître.
Code d’erreur d’E/S | gravité | Cause de l’erreur |
---|---|---|
0x200 |
Unknown |
Ce code couvre toutes les erreurs de vérification d’E/S inconnues. |
0x201 |
Erreur irrécupérable |
Un appareil se supprime alors qu’il y a un autre appareil sous celui-ci dans la pile des pilotes. Cela peut être dû au fait que l’appelant a oublié d’appeler IoDetachDevice en premier, ou que le pilote inférieur a peut-être été supprimé de manière incorrecte. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. |
0x202 |
Erreur irrécupérable |
Un pilote a tenté de se détacher d’un objet de périphérique qui n’est pas attaché à quoi que ce soit. Cela peut se produire si le détachement a été appelé deux fois sur le même objet d’appareil. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse de l’objet de l’appareil. |
0x203 |
Erreur irrécupérable |
Un pilote a appelé IoCallDriver sans définir la routine d’annulation dans l’IRP sur NULL. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x204 |
Erreur irrécupérable |
L’appelant a passé null en tant qu’objet d’appareil. C’est irrécupérable. Param 2 - Réservé Param 3 - Réservé |
0x205 |
Erreur irrécupérable |
L’appelant transfère un IRP actuellement mis en file d’attente sous celui-ci. Le code qui gère les irPs retournant STATUS_PENDING dans ce pilote semble être rompu. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x206 |
Erreur irrécupérable |
L’appelant a transféré incorrectement un IRP (champ de contrôle non mis à zéro). Le pilote doit utiliser IoCopyCurrentIrpStackLocationToNext ou IoSkipCurrentIrpStackLocation. Param 2 - Réservé Param 3 - Réservé |
0x207 |
Erreur irrécupérable |
L’appelant a copié manuellement la pile et a copié par inadvertance la routine d’achèvement de la couche supérieure. Le pilote doit utiliser IoCopyCurrentIrpStackLocationToNext. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x208 |
Erreur irrécupérable |
Ce protocole IRP est sur le point d’manquer d’emplacements de pile. Quelqu’un a peut-être transféré cet IRP à partir d’une autre pile. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x209 |
Erreur irrécupérable |
L’appelant termine un IRP actuellement mis en file d’attente sous celui-ci. Le code qui gère les irPs retournant STATUS_PENDING dans ce pilote semble être rompu. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x20A |
Erreur irrécupérable |
L’appelant d’IoFreeIrp libère un IRP toujours utilisé. Param 2 - Réservé Param 3 - Réservé |
0x20B |
Erreur irrécupérable |
L’appelant d’IoFreeIrp libère un IRP toujours utilisé. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x20C |
Erreur irrécupérable |
L’appelant d’IoFreeIrp libère un IRP qui est toujours mis en file d’attente sur un thread. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x20D |
Erreur irrécupérable |
L’appelant d’IoInitializeIrp a passé un IRP alloué avec IoAllocateIrp. Cela est illégal et inutile, et a provoqué une fuite de quota. Consultez la documentation d’IoReuseIrp si ce IRP est recyclé. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x20E |
Erreur non irrécupérable |
Un IRP PNP a un état non valide. (Tout IRP PNP doit avoir son état initialisé sur STATUS_NOT_SUPPORTED.) Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x20F |
Erreur non irrécupérable |
Un IRP Power a un état non valide. (Tout IRP power doit avoir son état initialisé pour STATUS_NOT_SUPPORTED.) Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x210 |
Erreur non irrécupérable |
Un IRP WMI a un état non valide. (Tout IRP WMI doit avoir son état initialisé sur STATUS_NOT_SUPPORTED.) Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x211 |
Erreur non irrécupérable |
L’appelant a transféré un IRP tout en ignorant un objet d’appareil dans la pile. L’appelant envoie probablement des irPs au PDO au lieu de l’appareil retourné par IoAttachDeviceToDeviceStack. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x212 |
Erreur non irrécupérable |
L’appelant a supprimé ou n’a pas correctement copié la pile de l’IRP. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x213 |
Erreur non irrécupérable |
L’appelant a modifié le champ d’état d’un IRP qu’il ne comprend pas. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x214 |
Erreur non irrécupérable |
L’appelant a modifié le champ d’information d’un IRP qu’il ne comprend pas. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x215 |
Erreur non irrécupérable |
Un état IRP non STATUS_NOT_SUPPORTED non réussi pour IRP_MJ_PNP est transmis à la pile. Les ADRESSES IP PNP ayant échoué doivent être terminées. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x216 |
Erreur non irrécupérable |
L’état de IRP_MJ_PNP précédemment défini a été converti en STATUS_NOT_SUPPORTED. Cet état d’échec est réservé pour une utilisation par le système d’exploitation. Les pilotes ne peuvent pas échouer un IRP PnP avec cette valeur. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x217 |
Erreur non irrécupérable |
Le pilote n’a pas géré un IRP requis. Le pilote doit mettre à jour l’état de l’IRP pour indiquer s’il a été géré ou non. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x218 |
Erreur non irrécupérable |
Le pilote a répondu à un IRP réservé à d’autres objets d’appareil ailleurs dans la pile. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x219 |
Erreur non irrécupérable |
Un état IRP non STATUS_NOT_SUPPORTED non réussi pour IRP_MJ_POWER est transmis à la pile. Les adresses IP POWER ayant échoué doivent être terminées. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x21A |
Erreur non irrécupérable |
L’état de IRP_MJ_POWER précédemment défini a été converti en STATUS_NOT_SUPPORTED. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x21B |
Erreur non irrécupérable |
Un pilote a retourné un état suspect. Cela est probablement dû à un bogue variable non initialisé dans le pilote. Param 3 - Adresse IRP. |
0x21C |
Avertissement |
L’appelant a copié la pile IRP, mais n’a pas défini de routine d’achèvement. Cela est inefficace : utilisez IoSkipCurrentIrpStackLocation à la place. Param 2 - Réservé Param 3 - Réservé |
0x21D |
Erreur irrécupérable |
Un gestionnaire de distribution IRP n’a pas correctement détaché de la pile située en dessous lors de la réception d’un IRP de suppression. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Adresse de l’objet de l’appareil. |
0x21E |
Erreur irrécupérable |
Un gestionnaire de distribution IRP n’a pas correctement supprimé son objet d’appareil lors de la réception d’un IRP de suppression. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Adresse de l’objet de l’appareil. |
0x21F |
Erreur non irrécupérable |
Un pilote n’a pas rempli de routine de répartition pour une fonction principale IRP requise. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x220 |
Erreur non irrécupérable |
IRP_MJ_SYSTEM_CONTROL a été effectué par une autre personne que providerId. Cet IRP aurait dû être terminé précédemment ou aurait dû être transmis. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - ProviderId. |
0x221 |
Erreur irrécupérable |
Un gestionnaire de répartition IRP pour un PDO a supprimé son objet d’appareil, mais le matériel n’a pas été signalé comme manquant dans une requête de relations de bus. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Adresse de l’objet de l’appareil. |
0x222 |
Erreur irrécupérable |
Le gestionnaire de répartition IRP d’un filtre de bus s’est détaché lors de la réception d’un IRP de suppression lorsque l’IDO est toujours actif. Les filtres bus doivent nettoyer les rappels FastIoDetach . Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Adresse de l’objet de l’appareil. |
0x223 |
Erreur irrécupérable |
Un gestionnaire de distribution IRP pour un filtre de bus a supprimé son objet d’appareil, mais le PDO est toujours présent. Les filtres de bus doivent nettoyer les rappels FastIoDetach . Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Adresse de l’objet de l’appareil. |
0x224 |
Erreur irrécupérable |
Un gestionnaire de distribution IRP a retourné un état incohérent avec le champ IoStatus.Status de l’IRP. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Code d’état attendu. |
0x225 |
Erreur non irrécupérable |
Un gestionnaire de distribution IRP a retourné un état non conforme (0xFFFFFFFF). Cela est probablement dû à une variable de pile non initialisée. Pour déboguer cette erreur, utilisez la commande ln (List Nearest Symbols) avec l’adresse spécifiée. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Code d’état. |
0x226 |
Erreur irrécupérable |
Un gestionnaire de distribution IRP est retourné sans passer ni terminer ce protocole IRP, ou quelqu’un a oublié de retourner STATUS_PENDING. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x227 |
Erreur irrécupérable |
Une routine d’achèvement IRP est en code paginable. (Cela n’est jamais autorisé.) Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x228 |
Erreur non irrécupérable |
La routine d’achèvement d’un pilote n’a pas marqué l’IRP en attente si le champ PendingReturned a été défini dans l’IRP passé à celui-ci. Cela peut entraîner le blocage de Windows, en particulier si une erreur est retournée par la pile. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x229 |
Erreur irrécupérable |
Une routine d’annulation a été définie pour un IRP en cours de traitement par les pilotes plus bas dans la pile, ce qui peut entraîner un stomping de leur routine d’annulation. Param 2 - Réservé. Param 3 - Réservé. |
0x22A |
Erreur non irrécupérable |
L’objet d’appareil physique (PDO) n’a pas répondu à un IRP requis. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x22B |
Erreur non irrécupérable |
L’objet d’appareil physique (PDO) a oublié de remplir la liste des relations d’appareil avec l’objet PDO de la requête TargetDeviceRelation . Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x22C |
Erreur irrécupérable |
Le code implémentant la requête TargetDeviceRelation n’a pas appelé ObReferenceObject sur l’objet PDO. Param 2 - Réservé. Param 3 - Réservé. |
0x22D |
Erreur non irrécupérable |
L’appelant a terminé un IRP_MJ_PNP il n’a pas compris au lieu de le transmettre. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x22E |
Erreur non irrécupérable |
L’appelant a terminé un IRP_MJ_PNP réussi au lieu de le transmettre. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x22F |
Erreur non irrécupérable |
L’appelant a terminé une IRP_MJ_PNP nontouchée (au lieu de passer l’IRP vers le bas), ou non-PDO a échoué à l’IRP à l’aide de la valeur illégale de STATUS_NOT_SUPPORTED. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x230 |
Erreur non irrécupérable |
L’appelant a terminé un IRP_MJ_POWER il ne comprenait pas au lieu de le transmettre. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x231 |
Erreur irrécupérable |
L’appelant a terminé un IRP_MJ_POWER réussi au lieu de le transmettre. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x232 |
Erreur non irrécupérable |
L’appelant a terminé un IRP_MJ_POWER non touché (au lieu de passer le IRP vers le bas) ou non-PDO a échoué à l’IRP à l’aide de la valeur illégale de STATUS_NOT_SUPPORTED. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x233 |
Erreur non irrécupérable |
Le champ de version de la structure des fonctionnalités de requête dans un IRP des fonctionnalités de requête n’a pas été correctement initialisé. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x234 |
Erreur non irrécupérable |
Le champ taille de la structure des fonctionnalités de requête dans un IRP des fonctionnalités de requête n’a pas été correctement initialisé. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x235 |
Erreur non irrécupérable |
Le champ d’adresse de la structure des fonctionnalités de requête dans un IRP des fonctionnalités de requête n’a pas été correctement initialisé sur -1. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x236 |
Erreur non irrécupérable |
Le champ Numéro d’interface utilisateur de la structure des fonctionnalités de requête dans un IRP des fonctionnalités de requête n’a pas été correctement initialisé sur -1. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x237 |
Erreur irrécupérable |
Un pilote a envoyé un IRP restreint uniquement pour une utilisation système. Param 2 - Réservé. Param 3 - Réservé. |
0x238 |
Avertissement |
L’appelant d’IoInitializeIrp a passé un IRP alloué avec IoAllocateIrp. Cela est illégal, inutile et a un impact négatif sur les performances dans une utilisation normale. Si cet IRP est recyclé, consultez IoReuseIrp dans le Kit de pilotes Windows. Param 2 - Réservé. Param 3 - Réservé. |
0x239 |
Avertissement |
L’appelant d’IoCompleteRequest termine un IRP qui n’a jamais été transféré via un appel à IoCallDriver ou PoCallDriver. Il peut s’agir d’un bogue. Param 2 - Réservé. Param 3 - Réservé. |
0x23A |
Erreur irrécupérable |
Un pilote a transféré un IRP à un IRQL qui est illégal pour ce code majeur. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x23B |
Erreur non irrécupérable |
L’appelant a modifié le champ d’état d’un IRP qu’il ne comprend pas. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
Le tableau suivant répertorie les erreurs de vérification d’E/S supplémentaires qui peuvent apparaître. Ces erreurs s’affichent lorsque la vérification d’E/S améliorée est activée. Pour plus d’informations, consultez Vérification améliorée des E/S.
Code d’erreur d’E/S | gravité | Cause de l’erreur |
---|---|---|
0x23C |
Erreur irrécupérable |
Un pilote a terminé un IRP sans définir la routine d’annulation dans l’IRP sur NULL. Param 2 - Réservé. Param 3 - Réservé. |
0x23D |
Erreur non irrécupérable |
Un pilote a retourné STATUS_PENDING mais n’a pas marqué l’IRP en attente via un appel à IoMarkIrpPending. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Code d’état. |
0x23E |
Erreur non irrécupérable |
Un pilote a marqué un IRP en attente, mais n’a pas retourné STATUS_PENDING. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Code d’état. |
0x23F |
Erreur irrécupérable |
Un pilote n’a pas hérité du bit DO_POWER_PAGABLE de la pile à laquelle il a été attaché. Param 2 - Réservé. Param 3 - Réservé. |
0x240 |
Erreur irrécupérable |
Un pilote tente de supprimer un objet d’appareil qui a déjà été supprimé via un appel antérieur à IoDeleteDevice. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 2 - Réservé. Param 3 - Réservé. |
0x241 |
Erreur irrécupérable |
Un pilote a détaché son objet d’appareil lors d’une suppression surprise d’IRP. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Adresse de l’objet d’appareil. |
0x242 |
Erreur irrécupérable |
Un pilote a supprimé son objet d’appareil lors d’une suppression surprise d’IRP. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Adresse de l’objet d’appareil. |
0x243 |
Erreur irrécupérable |
Un pilote n’a pas pu effacer l’indicateur de DO_DEVICE_INITIALIZING à la fin de AddDevice. Param 2 - Réservé. Param 3 - Réservé. Param 4 - |
0x244 |
Erreur irrécupérable |
Un pilote n’a pas copié le DO_BUFFERED_IO ou l’indicateur DO_DIRECT_IO de l’objet d’appareil auquel il est attaché. Param 2 - Réservé. Param 3 - Réservé. |
0x245 |
Erreur irrécupérable |
Un pilote a défini les DO_BUFFERED_IO et les indicateurs de DO_DIRECT_IO. Ces indicateurs sont mutuellement exclusifs. Param 2 - Réservé. Param 3 - Réservé. |
0x246 |
Erreur irrécupérable |
Un pilote n’a pas pu copier le champ DeviceType à partir de l’objet d’appareil auquel il est attaché. Param 2 - Réservé. Param 3 - Réservé. |
0x247 |
Erreur irrécupérable Param 2 - Réservé. Param 3 - Réservé. |
Un pilote a échoué un IRP qui ne peut pas être légalement échoué. |
0x248 |
Erreur irrécupérable |
Un pilote a ajouté un objet d’appareil qui n’est pas un PDO à une requête de relations d’appareil. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Adresse de l’objet d’appareil. |
0x249 |
Erreur non irrécupérable |
Un pilote a énuméré deux PDOS enfants qui ont retourné des ID d’appareil identiques. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Première adresse d’objet d’appareil. Param 4 - Deuxième adresse d’objet d’appareil. |
0x24A |
Erreur irrécupérable |
Un pilote a appelé par erreur une fonction d’E/S de fichier avec IRQL non égale à PASSIVE_LEVEL. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Réservé. Param 4 - Réservé. |
0x24B |
Erreur irrécupérable |
Un pilote a effectué une requête IRP_MN_QUERY_DEVICE_RELATIONS de type TargetDeviceRelation comme ayant réussi, mais n’a pas correctement rempli la demande ou transféré l’IRP vers la pile matérielle sous-jacente. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse de l’objet d’appareil. |
0x24C |
Erreur non irrécupérable |
Un pilote a retourné STATUS_PENDING mais n’a pas marqué l’IRP en attente par un appel à IoMarkIrpPending. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Code d’état. |
0x24D |
Erreur irrécupérable |
Un pilote a passé un objet d’appareil non valide à une fonction qui nécessite une fonction PDO. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Adresse de l’objet d’appareil. |
0x300 |
Erreur non irrécupérable |
Un pilote a retourné un état suspect. Cela est probablement dû à un bogue de variable non initialisé dans le pilote. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Code d’état suspect. |
0x301 |
Erreur non irrécupérable |
Un pilote a transféré un IRP à IRQL > DISPATCH_LEVEL. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Valeur IRQL incorrecte |
0x302 |
Erreur non irrécupérable |
Un pilote a transféré un IRP à IRQL > = APC_LEVEL. Le Gestionnaire d’E/S doit mettre en file d’attente un APC pour effectuer cette demande. L’APC ne pourra pas s’exécuter, car l’appelant est déjà au niveau de l’APC, de sorte que l’appelant est susceptible d’être bloqué. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. Param 4 - Valeur IRQL incorrecte. |
0x306 |
Erreur non irrécupérable |
Le pilote effectue une requête IRP_MJ_PNP (majeure) et IRP_MN_REMOVE_DEVICE (mineure) avec un code d’état d’échec. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x307 |
Erreur non irrécupérable |
Le pilote a émis une demande d’E/S avec un événement déjà signalé et reçu une réponse STATUS_PENDING. Cela peut entraîner un déroulage avant la fin de l’E/S. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x310 |
Erreur non irrécupérable |
Le pilote réinitialise un IRP qui est toujours en cours d’utilisation. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x311 |
Erreur non irrécupérable |
Le pilote réinitialise un IRP créé avec IoMakeAssociatedIrp, IoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest, IoBuildDeviceIoControlRequest. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
0x312 |
Erreur non irrécupérable |
L’appelant a fourni le champ Informations d’état IRP avec une valeur supérieure à la section de sortie de la mémoire tampon système. Param 2 : adresse dans le code du pilote où l’erreur a été détectée. Param 3 - Adresse IRP. |
Cause
Consultez la description de chaque code dans la section Paramètres pour obtenir une description de la cause.
Résolution
Cette vérification de bogue ne peut se produire que lorsque le vérificateur de pilote a été invité à surveiller un ou plusieurs pilotes. Si vous n’avez pas l’intention d’utiliser le vérificateur de pilote, vous devez le désactiver. Pour plus d’informations, consultez « Guide pratique pour contrôler le vérificateur de pilote » dans Le vérificateur de pilotes. Vous pouvez également envisager de mettre à jour ou de supprimer le pilote qui a également provoqué ce problème.
Si vous êtes le développeur de pilotes, utilisez les informations obtenues par le biais de cette vérification de bogue pour corriger les bogues dans votre code.
Pour plus d’informations sur le vérificateur de pilotes, consultez Le vérificateur de pilote.