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
Cet article s’adresse aux programmeurs. Si vous êtes un client et que vous avez reçu ce code d’erreur d’écran bleu en utilisant votre ordinateur, consultez Résoudre les erreurs d’écran bleu.
paramètres de DRIVER_VERIFIER_IOMANAGER_VIOLATION
Lorsque le vérificateur de pilote est actif et que la vérification des 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 passé IoCallDriver un objet d’appareil non valide. |
0x05 |
Adresse de l’objet d’appareil associé au pilote incriminé |
IRQL avant IoCallDriver |
IRQL après IoCallDriver |
Le runtime d’intégration a changé 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 étant 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 principal IRP |
Code d’état de l’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 de l’exception |
Le pilote a passé IoBuildDeviceIoControlRequest à une mémoire tampon non valide. |
0x10 |
IRQL actuel |
Reserved |
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 du pilote |
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 du pilote |
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 de l’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 un objet de fichier |
Le pilote a envoyé une demande de création avec un objet de fichier qui a été fermé ou qui a eu son annulation ouverte. |
En plus des 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 ERROR XXX, 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 (break), 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é la découverte de cette erreur.
Notez qu’aucune autre vérification des bogues ne peut être ignorée de cette façon. 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 des E/S qui peuvent apparaître.
Code d’erreur d’E/S | Niveau de gravité | Cause de l’erreur |
---|---|---|
0x200 |
Inconnu |
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 fatal. 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 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 de 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 qui est toujours en cours d’utilisation. Param 2 - Réservé Param 3 - Réservé |
0x20B |
Erreur irrécupérable |
L’appelant d’IoFreeIrp libère 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. |
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 qui a été alloué avec IoAllocateIrp. Cela est illégal et inutile, et a provoqué une fuite de quota. Consultez la documentation d’IoReuseIrp si cette IRP est recyclée. 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é à 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 IoAttachDeviceToDeviceToDeviceStack. 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’informations 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 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 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 runtimes d’intégration power ayant échoué doivent être terminés. 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 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 de 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 répartition IRP n’a pas correctement détaché de la pile 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 répartition 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é complété par une autre personne que providerId. Cet IRP devrait avoir été effectué 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 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 dans 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 répartition IRP pour un filtre de bus a supprimé son objet d’appareil, mais l’objet 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 répartition IRP a retourné un état incompatible 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 répartition IRP a retourné un état non valide (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 répartition IRP est retourné sans passer ou 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 pour 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 qu’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. |
0x22E |
Erreur non irrécupérable |
L’appelant a terminé une IRP_MJ_PNP réussie au lieu de la 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é un IRP_MJ_PNP non touché (au lieu de passer le protocole IRP vers le bas), ou l’IRP n’a pas réussi à utiliser 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 qu’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é une IRP_MJ_POWER réussie au lieu de la 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 protocole IRP vers le bas), ou l’IRP n’a pas réussi l’IRP en utilisant 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é à -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 qui est limité uniquement pour l’utilisation du système. Param 2 - Réservé. Param 3 - Réservé. |
0x238 |
Avertissement |
L’appelant d’IoInitializeIrp a passé un IRP qui a été alloué avec IoAllocateIrp. Cela n’est pas conforme, inutile et a un impact négatif sur les performances dans l’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 | Niveau de 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 est 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 précédent à 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 de périphérique lors d’une suppression surprise 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 de l’appareil. |
0x242 |
Erreur irrécupérable |
Un pilote a supprimé son objet d’appareil lors d’une suppression d’IRP surprise. 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. |
0x243 |
Erreur irrécupérable |
Un pilote n’a pas pu effacer l’indicateur 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é l’DO_BUFFERED_IO ou l’indicateur de 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 s’excluent mutuellement. 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 de l’appareil. |
0x249 |
Erreur non irrécupérable |
Un pilote a énuméré deux PDA 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 de l’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 égal à 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 à 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 de l’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 transmis un objet d’appareil non valide à une fonction qui nécessite une 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 de l’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 au > 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 d’APC, de sorte que l’appelant est susceptible d’interblocage. 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 qui a déjà été signalé et a reçu une réponse STATUS_PENDING. Cela peut entraîner un déroulement 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 pilotes 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 pilotes » 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 développeur de pilotes, utilisez les informations obtenues via cette vérification de bogues pour corriger les bogues dans votre code.
Pour plus d’informations sur Driver Verifier, consultez Driver Verifier.