Partager via


0xC9 de vérification des bogues : DRIVER_VERIFIER_IOMANAGER_VIOLATION

Le case activée de bogue DRIVER_VERIFIER_IOMANAGER_VIOLATION a la valeur 0x000000C9. Il s’agit du code case activée bogue pour toutes les violations de vérification des E/S du vérificateur de pilote.

Important

Cet article est destiné aux programmeurs. 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 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 ce bogue case activée. 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 en cours de libération

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 en cours de libération

0

0

Le pilote a tenté de libérer un IRP qui est toujours associé à un thread.

0x03

Adresse d’IRP envoyée

0

0

Le pilote a passé à IoCallDriver un type IRP différent de IRP_TYPE.

0x04

Adresse de l’objet d’appareil

0

0

Le pilote a transmis à IoCallDriver un objet de périphérique non valide.

0x05

Adresse de l’objet de périphérique associé au pilote incriminé

IRQL avant IoCallDriver

IRQL après IoCallDriver

L’IRQL a changé lors d’un appel à la routine de répartition du pilote.

0x06

Status IRP

Adresse de l’IRP en cours de réalisation

0

Le pilote appelé IoCompleteRequest avec un status 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 a 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 de status d’exception

Le pilote a passé IoBuildAsynchronousFsdRequester une mémoire tampon non valide.

0x09

Adresse de l’objet d’appareil

Code de contrôle d’E/S

Code de status 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 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’E/S status

0

0

Le pilote a passé un bloc d’E/S status à un IRP, mais ce bloc est alloué sur une pile qui a déjà passé 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à passé 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 l’objet file

Le pilote a envoyé une demande de création avec un objet fichier qui a été fermé ou dont l’ouverture a été annulée.

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 du système, mais qui ne sont pas en fait 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 bogue hexadécimal case activée code 0xC9 et le bogue case activée chaîne 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 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 à l’origine de 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écimale. (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 à l’origine de cette violation, les informations suivantes sont envoyées au débogueur :

  • Message ERREUR DU PILOTE WDM, ainsi qu’une évaluation de la gravité de l’erreur.

  • Nom du pilote à l’origine de 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 des 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 ne s’était pas produite. Bien sûr, cela entraîne 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.

Note Aucune autre vérification de bogue ne peut être ignorée de cette manière. Seul ce type d’erreurs de vérification d’E/ S peut être ignoré, 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 lui-même 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 s’est peut-être supprimé de manière incorrecte.

Paramètre 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 attaché à rien. Cela peut se produire si detach a été appelé deux fois sur le même objet d’appareil.

Paramètre 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 affecter la valeur NULL à la routine d’annulation dans l’IRP.

Paramètre 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 de gestion des irps retournant STATUS_PENDING dans ce pilote semble être rompu.

Paramètre 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ètre 2 : adresse dans le code du pilote où l’erreur a été détectée.

Param 3 - Adresse IRP.

0x208

Erreur irrécupérable

Cette IRP est sur le point de manquer d’emplacements de pile. Quelqu’un a peut-être transféré ce IRP à partir d’une autre pile.

Paramètre 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 qui est actuellement en file d’attente sous celui-ci. Le code de gestion des irps retournant STATUS_PENDING dans ce pilote semble être rompu.

Paramètre 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ètre 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 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. C’est illégal et inutile, et a provoqué une fuite de quota. Consultez la documentation relative à IoReuseIrp si cette IRP est en cours de recyclage.

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 status non valide. (Tout IRP PNP doit avoir son status 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 status non valide. (Tout IRP d’alimentation doit avoir son status 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.

0x210

Erreur non irrécupérable

Un IRP WMI a un status non valide. (Tout IRP WMI doit avoir son status 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 à l’AOP 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 corbeille 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 status 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

Une status IRP non STATUS_NOT_SUPPORTED non réussie pour IRP_MJ_PNP est transmise dans la pile. Les IRP PNP 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.

0x216

Erreur non irrécupérable

Le IRP_MJ_PNP status précédemment défini a été converti en STATUS_NOT_SUPPORTED. Cette défaillance status est réservée à 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 le status 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 qui est 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

Une status IRP non STATUS_NOT_SUPPORTED non réussie pour IRP_MJ_POWER est transmise dans la pile. Les irps 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

Le IRP_MJ_POWER status 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 status 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. C’est inefficace : utilisez Plutôt IoSkipCurrentIrpStackLocation .

Param 2 - Réservé

Param 3 - Réservé

0x21D

Erreur irrécupérable

Un gestionnaire de répartition IRP ne s’est 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 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é effectué par une personne autre que ProviderId. Ce IRP aurait dû être terminé plus tôt 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’AOP est toujours actif. Les filtres bus doivent propre 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 le PDO est toujours présent. Les filtres bus doivent propre 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.

0x224

Erreur irrécupérable

Un gestionnaire de répartition IRP a renvoyé un status qui n’est pas cohé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 status attendu.

0x225

Erreur non irrécupérable

Un gestionnaire de répartition IRP a renvoyé un status qui est illégal (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 transmettre ou terminer cette 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 dans du 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 qui lui a été transmis. 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 qui est actuellement traité par les pilotes plus bas dans la pile, ce qui peut réduire 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 le 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 le PDO.

Param 2 - Réservé.

Param 3 - Réservé.

0x22D

Erreur non irrécupérable

L’appelant a terminé une IRP_MJ_PNP qu’il ne comprenait pas 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.

0x22E

Erreur non irrécupérable

L’appelant a terminé une IRP_MJ_PNP réussie au lieu de la transmettre.

Paramètre 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 intacte (au lieu de transmettre l’IRP vers le bas), ou l’IRP non PDO a échoué à l’aide d’une valeur illégale de STATUS_NOT_SUPPORTED.

Paramètre 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é une IRP_MJ_POWER qu’il ne comprenait pas au lieu de la transmettre.

Paramètre 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ètre 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é une IRP_MJ_POWER intacte (au lieu de transmettre l’IRP vers le bas), ou l’IRP non PDO a échoué à l’aide d’une valeur illégale de STATUS_NOT_SUPPORTED.

Paramètre 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ètre 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 de 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ètre 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é à -1.

Paramètre 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ètre 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é pour une utilisation système uniquement.

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 est illégal, inutile et a un impact négatif sur les performances dans une utilisation normale. Si cette IRP est en cours de recyclage, 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 n’est pas conforme à ce code majeur.

Paramètre 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 status d’un IRP qu’il ne comprend pas.

Paramètre 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 apparaissent lorsque la vérification d’E/S améliorée est activée. Pour plus d’informations, consultez Vérification d’E/S améliorée.

Code d’erreur d’E/S Gravité Cause de l’erreur

0x23C

Erreur irrécupérable

Un pilote a effectué une IRP sans affecter la valeur NULL à la routine d’annulation dans l’IRP.

Param 2 - Réservé.

Param 3 - Réservé.

0x23D

Erreur non irrécupérable

Un pilote a renvoyé STATUS_PENDING mais n’a pas marqué l’IRP en attente via un appel à IoMarkIrpPending.

Paramètre 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ètre 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é le 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 antérieur à IoDeleteDevice.

Paramètre 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 d’IRP.

Paramètre 2 : adresse dans le code du pilote où l’erreur a été détectée.

Param 3 - Adresse IRP.

Paramètre 4 - Adresse de l’objet de l’appareil.

0x242

Erreur irrécupérable

Un pilote a supprimé son objet de périphérique lors d’une suppression d’IRP surprise.

Paramètre 2 : adresse dans le code du pilote où l’erreur a été détectée.

Param 3 - Adresse IRP.

Paramètre 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é le DO_BUFFERED_IO ou l’indicateur DO_DIRECT_IO de l’objet de périphérique auquel il est attaché.

Param 2 - Réservé.

Param 3 - Réservé.

0x245

Erreur irrécupérable

Un pilote a défini les indicateurs DO_BUFFERED_IO et 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 de périphérique 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 légalement être échoué.

0x248

Erreur irrécupérable

Un pilote a ajouté un objet de périphérique qui n’est pas un PDO à une requête de relations d’appareil.

Paramètre 2 : adresse dans le code du pilote où l’erreur a été détectée.

Param 3 - Adresse IRP.

Paramètre 4 - Adresse de l’objet de l’appareil.

0x249

Erreur non irrécupérable

Un pilote a énuméré deux PDO enfants qui ont retourné des ID d’appareil identiques.

Paramètre 2 : adresse dans le code du pilote où l’erreur a été détectée.

Paramètre 3 : adresse du premier objet d’appareil.

Param 4 - Deuxième adresse de l’objet d’appareil.

0x24A

Erreur irrécupérable

Un pilote a appelé par erreur une fonction d’E/S de fichier avec IRQL différent de PASSIVE_LEVEL.

Paramètre 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 terminé une demande de IRP_MN_QUERY_DEVICE_RELATIONS de type TargetDeviceRelation comme réussie, mais n’a pas correctement rempli la demande ou transféré l’IRP à la pile matérielle sous-jacente.

Paramètre 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 renvoyé STATUS_PENDING mais n’a pas marqué l’IRP en attente par un appel à IoMarkIrpPending.

Paramètre 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 de périphérique non valide à une fonction qui nécessite un PDO.

Paramètre 2 : adresse dans le code du pilote où l’erreur a été détectée.

Param 3 - Adresse IRP.

Paramètre 4 - Adresse de l’objet de l’appareil.

0x300

Erreur non irrécupérable

Un pilote a retourné un status suspect. Cela est probablement dû à un bogue de variable non initialisé dans le pilote.

Paramètre 2 : adresse dans le code du pilote où l’erreur a été détectée.

Param 3 - Adresse IRP.

Param 4 - Code status suspect.

0x301

Erreur non irrécupérable

Un pilote a transféré un IRP à IRQL > DISPATCH_LEVEL.

Paramètre 2 : adresse dans le code du pilote où l’erreur a été détectée.

Param 3 - Adresse IRP.

Paramètre 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 terminer 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’être bloqué.

Paramètre 2 : adresse dans le code du pilote où l’erreur a été détectée.

Param 3 - Adresse IRP.

Paramètre 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 de status 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 au champ Informations d’état IRP 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

Pour obtenir une description de la cause, consultez la description de chaque code dans la section Paramètres.

Résolution

Ce bogue case activée ne peut se produire que lorsque le vérificateur de pilotes a reçu l’instruction de surveiller un ou plusieurs pilotes. Si vous n’avez pas l’intention d’utiliser Driver Verifier, vous devez le désactiver. Pour plus d’informations, consultez « Guide pratique pour contrôler le vérificateur de pilotes » dans Driver Verifier. Vous pouvez également envisager de mettre à jour ou de supprimer le pilote à l’origine de ce problème.

Si vous êtes le développeur de pilotes, utilisez les informations obtenues via ce bogue case activée pour corriger les bogues dans votre code.

Pour plus d’informations sur Driver Verifier, consultez Driver Verifier.