Partager via


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.