0xC4 de vérification des bogues : DRIVER_VERIFIER_DETECTED_VIOLATION
Le case activée de bogue DRIVER_VERIFIER_DETECTED_VIOLATION a la valeur 0x000000C4. Il s’agit du code de case activée de bogue général pour les erreurs irrécupérables détectées par le vérificateur de pilote. Pour plus d’informations, consultez Gestion d’une vérification de bogue lorsque le vérificateur de pilote est activé.
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_DETECTED_VIOLATION
Le paramètre 1 identifie le type de violation. La signification des paramètres restants varie avec la valeur du paramètre 1. Les valeurs des paramètres sont décrites dans le tableau suivant.
Note Si vous ne parvenez pas à afficher les 5 colonnes de cette table, essayez les opérations suivantes :
- Développez la fenêtre de votre navigateur en taille réelle.
- Placez le curseur dans le tableau et utilisez les touches de direction pour faire défiler vers la gauche et la droite.
0x00 à 0x70
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0x00 | IRQL actuel | Type de pool | Nombre d'octets | Le pilote a demandé une allocation de pool d’octets zéro. |
0x01 | IRQL actuel | Type de pool | Taille de l’allocation, en octets | Le pilote a tenté d’allouer de la mémoire paginée avec irQL > APC_LEVEL. |
0x02 | IRQL actuel | Type de pool | Taille de l’allocation, en octets | Le pilote a tenté d’allouer de la mémoire non paginé avec l’DISPATCH_LEVEL IRQL > . |
0x03 | L’appelant tente d’allouer plusieurs pages de doit réussir le pool, mais une page est la page maximale autorisée par cette API. | |||
0x10 | Adresse incorrecte | 0 | 0 | Le pilote a tenté de libérer une adresse qui n’a pas été retournée par un appel d’allocation. |
0x11 | IRQL actuel | Type de pool | Adresse du pool | Le pilote a tenté de libérer un pool paginé avec irQL > APC_LEVEL. |
0x12 | IRQL actuel | Type de pool | Adresse du pool | Le pilote a tenté de libérer un pool non paginé avec irQL > DISPATCH_LEVEL. |
0x13 ou 0x14 | Réservé | Pointeur vers l’en-tête du pool | Contenu de l’en-tête de pool | Le pilote a tenté de libérer le pool de mémoire qui était déjà libéré. |
0x15 | Entrée du minuteur | Type de pool | L’adresse du pool est libérée | Le pool que l’appelant tente de libérer contient un minuteur actif. |
0x16 | Réservé | Adresse du pool | 0 | Le pilote a tenté de libérer le pool à une adresse incorrecte, ou le pilote a transmis des paramètres non valides à une routine de mémoire. |
0X17 | Entrée de ressource | Type de pool | L’adresse du pool est libérée | Le pool que l’appelant tente de libérer contient un ERESOURCE actif. |
0x30 | IRQL actuel | IRQL demandé | 0 | Le pilote a transmis un paramètre non valide à KeRaiseIrql. (Le paramètre était soit une valeur inférieure à l’IRQL actuel, soit une valeur supérieure à HIGH_LEVEL. Cela peut être le résultat de l’utilisation d’un paramètre non initialisé.) |
0x31 | IRQL actuel | IRQL demandé | 0 : Le nouvel IRQL est incorrect 1 : le nouvel IRQL n’est pas valide à l’intérieur d’une routine DPC | Le pilote a transmis un paramètre non valide à KeLowerIrql. (Le paramètre était soit une valeur supérieure à l’IRQL actuel, soit une valeur supérieure à HIGH_LEVEL. Cela peut être le résultat de l’utilisation d’un paramètre non initialisé.) |
0x32 | IRQL actuel | Adresse de verrouillage de rotation | 0 | Le pilote appelé KeReleaseSpinLock sur un IRQL autre que DISPATCH_LEVEL. (Cela peut être dû à une double libération d’un verrou de rotation.) |
0x33 | IRQL actuel | Adresse mutex rapide | 0 | Le pilote a tenté d’acquérir un mutex rapide avec des APC_LEVEL IRQL > . |
0x34 | IRQL actuel | Nombre de désactivations du thread APC | Adresse mutex rapide | Le pilote a tenté de libérer un mutex rapide à un IRQL autre que APC_LEVEL. |
0x35 | IRQL actuel | Adresse de verrouillage de rotation | Ancien IRQL | Le noyau a libéré un verrou de rotation avec IRQL non égal à DISPATCH_LEVEL. |
0x36 | IRQL actuel | Numéro de verrou de rotation | Ancien IRQL | Le noyau a libéré un verrou de rotation en file d’attente avec IRQL non égal à DISPATCH_LEVEL. |
0x37 | IRQL actuel | Nombre de désactivations du thread APC | Ressource | Le pilote a essayé d’acquérir une ressource, mais les API ne sont pas désactivés. |
0x38 | IRQL actuel | Nombre de désactivations du thread APC | Ressource | Le pilote a essayé de libérer une ressource, mais les API ne sont pas désactivés. |
0x39 | IRQL actuel | Nombre de désactivations du thread APC | Mutex | Le pilote a essayé d’acquérir un mutex « dangereux » avec IRQL non égal à APC_LEVEL à l’entrée. |
0x3A | IRQL actuel | Nombre de désactivations du thread APC | Mutex | Le pilote a essayé de libérer un mutex « dangereux » avec IRQL non égal à APC_LEVEL à l’entrée. |
0x3B | IRQL actuel | Objet à attendre | Paramètre délai d’expiration | La routine KeWaitXxx est appelée à DISPATCH_LEVEL ou une version ultérieure. |
0x3C | Handle passé à la routine | Type d’objet | 0 | Le pilote appelé ObReferenceObjectByHandle avec une poignée incorrecte. |
0x3D | 0 | 0 | Adresse de la ressource incorrecte | Le pilote a passé une ressource incorrecte (non alignée) à ExAcquireResourceExclusive. |
0x3E | 0 | 0 | 0 | Le pilote appelé KeLeaveCriticalRegion pour un thread qui ne se trouve actuellement pas dans une région critique. |
0x3F | Adresse de l’objet | Nouveau nombre de références d’objets. -1 : cas de déréférence 1 : cas de référence | 0 | Le pilote a appliqué ObReferenceObject à un objet dont le nombre de références est égal à zéro, ou le pilote a appliqué ObDereferenceObject à un objet qui a un nombre de références de zéro. |
0x40 | IRQL actuel | Adresse de verrouillage de rotation | 0 | Le pilote appelé KeAcquireSpinLockAtDpcLevel avec irql < DISPATCH_LEVEL. |
0x41 | IRQL actuel | Adresse de verrouillage de rotation | 0 | Le pilote appelé KeReleaseSpinLockFromDpcLevel avec DISPATCH_LEVEL IRQL < . |
0x42 | IRQL actuel | Adresse de verrouillage de rotation | 0 | Le pilote appelé KeAcquireSpinLock avec irQL > DISPATCH_LEVEL. |
0x51 | Adresse de base de l’allocation | Adresse de la référence au-delà de l’allocation | Nombre d’octets facturés | Le pilote a tenté de libérer de la mémoire après avoir écrit au-delà de la fin de l’allocation. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option De suivi du pool de Driver Verifier est active. |
0x52 | Adresse de base de l’allocation | Entrée de hachage | Nombre d’octets facturés | Le pilote a tenté de libérer de la mémoire après avoir écrit au-delà de la fin de l’allocation. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option De suivi du pool de Driver Verifier est active. |
0x53 | Adresse de base de l’allocation | En-tête | Réservé | Le pilote a tenté de libérer de la mémoire après avoir écrit au-delà de la fin de l’allocation. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option De suivi du pool de Driver Verifier est active. |
0x54 | Adresse de base de l’allocation | Réservé | Taille du hachage du pool | Le pilote a tenté de libérer de la mémoire après avoir écrit au-delà de la fin de l’allocation. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option De suivi du pool de Driver Verifier est active. |
0x59 | Adresse de base de l’allocation | Listindex | Réservé | Le pilote a tenté de libérer de la mémoire après avoir écrit au-delà de la fin de l’allocation. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option De suivi du pool de Driver Verifier est active. |
0x60 | Octets alloués à partir d’un pool paginé | Octets alloués à partir d’un pool non paginé | Nombre total d’allocations qui n’ont pas été libérées | Le pilote se décharge sans libérer d’abord ses allocations de pool. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option De suivi du pool de Driver Verifier est active. |
0x61 | Octets alloués à partir d’un pool paginé | Octets alloués à partir d’un pool non paginé | Nombre total d’allocations qui n’ont pas été libérées | Un thread de pilote tente d’allouer la mémoire du pool pendant le déchargement du pilote. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option De suivi du pool de Driver Verifier est active. |
0x62 | Nom du pilote | Réservé | Nombre total d’allocations qui n’ont pas été libérées, y compris les pools paginés et non paginés | Le pilote se décharge sans libérer d’abord ses allocations de pool. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option De suivi du pool de Driver Verifier est active. Tapez !verifier 3 drivername.sys pour plus d’informations sur les allocations qui ont été divulguées à l’origine de la vérification de bogue. |
0x6F | Adresse MDL | Page physique verrouillée | Page physique la plus élevée du système | MmProbeAndLockPages appelé sur les pages qui ne sont pas dans la base de données PFN. Il s’agit généralement d’un pilote appelant cette routine pour verrouiller sa propre RAM doubleport privée. Non seulement cela n’est pas nécessaire, mais il peut également endommager la mémoire sur les ordinateurs avec une RAM physique non incohérente. |
0x70 à 0x91
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0x70 | IRQL actuel | Adresse MDL | Mode d’accès | Le pilote appelé MmProbeAndLockPages avec irQL > DISPATCH_LEVEL. |
0x71 | IRQL actuel | Adresse MDL | Adresse du processus | Le pilote appelé MmProbeAndLockProcessPages avec irql > DISPATCH_LEVEL. |
0x72 | IRQL actuel | Adresse MDL | Adresse du processus | Le pilote appelé MmProbeAndLockSelectedPages avec irql > DISPATCH_LEVEL. |
0x73 | IRQL actuel | Dans Windows 32 bits : faible 32 bits de l’adresse physique Dans Windows 64 bits : l’adresse physique 64 bits | Nombre d'octets | Le pilote appelé MmMapIoSpace avec irQL > DISPATCH_LEVEL. |
0x74 | IRQL actuel | Adresse MDL | Mode d’accès | Le pilote appelé MmMapLockedPages en mode noyau avec irql > DISPATCH_LEVEL. |
0x75 | IRQL actuel | Adresse MDL | Mode d’accès | Le pilote appelé MmMapLockedPages en mode utilisateur avec irql > APC_LEVEL. |
0x76 | IRQL actuel | Adresse MDL | Mode d’accès | Le pilote appelé MmMapLockedPagesSpecifyCache en mode noyau avec irql > DISPATCH_LEVEL. |
0x77 | IRQL actuel | Adresse MDL | Mode d’accès | Le pilote appelé MmMapLockedPagesSpecifyCache en mode utilisateur avec irql > APC_LEVEL. |
0x78 | IRQL actuel | Adresse MDL | 0 | Le pilote appelé MmUnlockPages avec irql > DISPATCH_LEVEL. |
0x79 | IRQL actuel | Adresse virtuelle en cours de démapped | Adresse MDL | Le pilote appelé MmUnmapLockedPages en mode noyau avec irQL > DISPATCH_LEVEL. |
0x7A | IRQL actuel | Adresse virtuelle en cours de démapped | Adresse MDL | Le pilote appelé MmUnmapLockedPages en mode utilisateur avec IRQL > APC_LEVEL. |
0x7B | IRQL actuel | Adresse virtuelle en cours de démapped | Nombre d'octets | Le pilote appelé MmUnmapIoSpace avec irql > APC_LEVEL. |
0x7C | Adresse MDL | Indicateurs MDL | 0 | Le pilote a appelé MmUnlockPages et a passé un MDL dont les pages n’ont jamais été verrouillées avec succès. |
0x7D | Adresse MDL | Indicateurs MDL | 0 | Le pilote appelé MmUnlockPages a passé une MDL dont les pages proviennent d’un pool non paginé. (Ceux-ci ne doivent jamais être déverrouillés.) |
0x7E | IRQL actuel | DISPATCH_LEVEL | 0 | Le pilote appelé MmAllocatePagesForMdl, MmAllocatePagesForMdlEx ou MmFreePagesFromMdl avec IRQL > DISPATCH_LEVEL. |
0x7F | IRQL actuel | Adresse MDL | Indicateurs MDL | Le pilote appelé BuildMdlForNonPagedPool a passé un MDL dont les pages proviennent d’un pool paginé. |
0x80 | IRQL actuel | Adresse de l’événement | 0 | Le pilote appelé KeSetEvent avec irQL > DISPATCH_LEVEL. |
0x81 | Adresse MDL | Indicateurs MDL | 0 | Pilote appelé MmMapLockedPages. (Vous devez utiliser MmMapLockedPagesSpecifyCache à la place, avec le paramètre BugCheckOnFailure défini sur FALSE.) |
0x82 | Adresse MDL | Indicateurs MDL | 0 | Le pilote appelé MmMapLockedPagesSpecifyCache avec le paramètre BugCheckOnFailure égal à TRUE. (Ce paramètre doit être défini sur FALSE.) |
0x83 | Début de la plage d’adresses physique à mapper | Nombre d’octets à mapper | Numéro de cadre de la première page qui n’est pas verrouillé | Le pilote a appelé MmMapIoSpace sans avoir verrouillé les pages MDL. Les pages physiques représentées par la plage d’adresses physique en cours de mappage doivent avoir été verrouillées avant d’effectuer cet appel. |
0x85 | Adresse MDL | Nombre de pages à mapper | Numéro de cadre de la première page qui n’est pas verrouillé | Le pilote a appelé MmMapLockedPages sans avoir verrouillé les pages MDL. |
0x89 | Adresse MDL | Pointeur vers la page non mémoire dans la MDL | Numéro de page non mémoire dans mdL | Une MDL n’est pas marquée comme « E/S », mais elle contient des adresses de page autres que la mémoire. |
0x91 | Réservé | Réservé | Réservé | Le pilote a changé de pile à l’aide d’une méthode qui n’est pas prise en charge par le système d’exploitation. Le seul moyen pris en charge pour étendre une pile en mode noyau consiste à utiliser KeExpandKernelStackAndCallout. |
0xA0 à 0x140
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0xA0 | Pointeur vers l’IRP qui effectue la demande de lecture ou d’écriture | Objet d’appareil de l’appareil inférieur | Numéro du secteur dans lequel l’erreur a été détectée | Une erreur de case activée de redondance cyclique (CRC) a été détectée sur un disque dur. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Vérification de l’intégrité du disque de Driver Verifier est active. |
0xA1 | Copie de l’IRP qui effectue la demande de lecture ou d’écriture. (L’IRP réel est terminé.) | Objet d’appareil de l’appareil inférieur | Numéro du secteur dans lequel l’erreur a été détectée | Une erreur CRC a été détectée sur un secteur (de manière asynchrone). Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Vérification de l’intégrité du disque de Driver Verifier est active. |
0xA2 | IRP effectuant la demande de lecture ou d’écriture, ou une copie de cet IRP | Objet d’appareil de l’appareil inférieur | Numéro du secteur dans lequel l’erreur a été détectée | Les copies de somme de contrôle CRCDISK ne correspondent pas. Il peut s’agir d’une erreur de pagination. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Vérification de l’intégrité du disque de Driver Verifier est active. |
0xB0 | Adresse MDL | Indicateurs MDL | Indicateurs MDL incorrects | Le pilote appelé MmProbeAndLockPages pour une MDL avec des indicateurs incorrects. Par exemple, le pilote a passé un MDL créé par MmBuildMdlForNonPagedPool à MmProbeAndLockPages. |
0xB1 | Adresse MDL | Indicateurs MDL | Indicateurs MDL incorrects | Le pilote appelé MmProbeAndLockProcessPages pour une MDL avec des indicateurs incorrects. Par exemple, le pilote a passé une MDL créée par MmBuildMdlForNonPagedPool à MmProbeAndLockProcessPages. |
0xB2 | Adresse MDL | Indicateurs MDL | Indicateurs MDL incorrects | Le pilote appelé MmMapLockedPages pour une MDL avec des indicateurs incorrects. Par exemple, le pilote a passé une MDL qui est déjà mappée à une adresse système ou qui n’était pas verrouillée sur MmMapLockedPages. |
0xB3 | Adresse MDL | Indicateurs MDL | Indicateurs MDL manquants (au moins un était attendu) | Le pilote appelé MmMapLockedPages pour une MDL avec des indicateurs incorrects. Par exemple, le pilote a passé une MDL qui n’est pas verrouillée à MmMapLockedPages. |
0xB4 | Adresse MDL | Indicateurs MDL | Indicateur MDL partiel inattendu | Le pilote appelé MmUnlockPages pour une MDL partielle. Un MDL partiel est celui qui a été créé par IoBuildPartialMdl. |
0xB5 | Adresse MDL | Indicateurs MDL | Indicateur MDL partiel inattendu | MmUnmapLockedPages appelé sur une MDL partielle (créée avec IoBuildPartialMdl). |
0xB6 | Adresse MDL | Indicateurs MDL | Indicateur MDL manquant | MmUnmapLockedPages appelé sur une MDL qui n’est pas mappée à une adresse système. |
0xB7 | Nombre de pages physiques endommagées. | Première page physique endommagée. | Dernière page physique endommagée. | Le BIOS système a endommagé la mémoire physique insuffisante pendant une transition de mise en veille. |
0xB8 | Adresse MDL | Indicateurs MDL | Réservé | Les pages décrites par mdl sont toujours mappées. Le pilote doit annuler le mappage des pages avant d’appeler IoFreeMdl. |
0xB9 | Adresse en cours de démassée. | Adresse MDL. | Réservé | MmUnmapLockedPages appelés avec une adresse d’espace utilisateur incorrecte. |
0xC0 | Adresse de l’IRP | 0 | Réservé | Le pilote appelé IoCallDriver avec les interruptions désactivées. |
0xC1 | Adresse de la routine de répartition des pilotes | Réservé | Réservé | Une routine de répartition des pilotes a été retournée avec les interruptions désactivées. |
0xC2 | 0 | 0 | 0 | Le pilote a appelé une routine de distribution d’E/S rapide après la désactivation des interruptions. |
0xC3 | Adresse de la routine de distribution d’E/S rapides du pilote | Réservé | Réservé | Une routine de répartition rapide des E/S du pilote a été retournée avec les interruptions désactivées. |
0xC5 | Adresse de la routine de répartition des pilotes | Nombre de désactivations APC du thread actuel | Nombre de désactivations APC du thread avant d’appeler la routine de répartition du pilote | Une routine de répartition des pilotes a modifié le nombre de désactivations APC du thread. Le nombre de désactivations APC est décrémenté chaque fois qu’un pilote appelle KeEnterCriticalRegion, FsRtlEnterFileSystem ou acquiert un mutex. Le nombre de désactivations APC est incrémenté chaque fois qu’un pilote appelle KeLeaveCriticalRegion, KeReleaseMutex ou FsRtlExitFileSystem. Étant donné que ces appels doivent toujours être en paires, le nombre de désactivations d’APC doit être égal à zéro chaque fois qu’un thread est supprimé. Une valeur négative indique qu’un pilote a désactivé les appels APC sans les réactiver. Une valeur positive indique que l’inverse est vrai. |
0xC6 | Adresse de la routine de distribution d’E/S rapides du pilote | Nombre de désactivations APC du thread actuel | Nombre de désactivations APC du thread avant d’appeler la routine de répartition du pilote d’E/S rapide | Une routine de répartition rapide des E/S du pilote a modifié le nombre de désactivations APC du thread. Le nombre de désactivations APC est décrémenté chaque fois qu’un pilote appelle KeEnterCriticalRegion, FsRtlEnterFileSystem ou acquiert un mutex. Le nombre de désactivations APC est incrémenté chaque fois qu’un pilote appelle KeLeaveCriticalRegion, KeReleaseMutex ou FsRtlExitFileSystem. Étant donné que ces appels doivent toujours être en paires, le nombre de désactivations d’APC doit être égal à zéro chaque fois qu’un thread est supprimé. Une valeur négative indique qu’un pilote a désactivé les appels APC sans les réactiver. Une valeur positive indique que l’inverse est vrai. |
0xCA | Adresse de la liste de recherche | Réservé | Réservé | Le pilote a tenté de réin initialiser une liste de lookaside. |
0xCB | Adresse de la liste de recherche | Réservé | Réservé | Le pilote a tenté de supprimer une liste de lookaside non initialisée. |
0xCC | Adresse de la liste de recherche | Adresse de départ de l’allocation de pool | Taille de l’allocation de pool | Le pilote a tenté de libérer une allocation de pool qui contient une liste de recherche active. |
0xCD | Adresse de la liste de recherche | Taille de bloc spécifiée par l’appelant | Taille de bloc minimale prise en charge | Le pilote a tenté de créer une liste de lookaside avec une taille de bloc d’allocation trop petite. |
0xD0 | Adresse de la structure ERESOURCE | Réservé | Réservé | Le pilote a tenté de réin initialiser une structure ERESOURCE. |
0xD1 | Adresse de la structure ERESOURCE | Réservé | Réservé | Le pilote a tenté de supprimer une structure ERESOURCE non initialisée. |
0xD2 | Adresse de la structure ERESOURCE | Adresse de départ de l’allocation de pool | Taille de l’allocation de pool | Le pilote a tenté de libérer une allocation de pool qui contient une structure ERESOURCE active. |
0xD5 | Adresse de la structure IO_REMOVE_LOCK créée par la version de build vérifiée du pilote | Balise IoReleaseRemoveLock actuelle | Réservé | La balise IoReleaseRemoveLock actuelle ne correspond pas à la balise IoAcquireRemoveLock précédente. Si le pilote appelant IoReleaseRemoveLock n’est pas dans une build cochée, le paramètre 2 est l’adresse de la structure d’ombre IO_REMOVE_LOCK créée par driver Verifier pour le compte du pilote. Dans ce cas, l’adresse de la structure de IO_REMOVE_LOCK utilisée par le pilote n’est pas du tout utilisée, car le vérificateur de pilotes remplace l’adresse de verrouillage pour toutes les API de suppression de verrou. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Vérification des E/S de Driver Verifier est active. |
0xD6 | Adresse de la structure IO_REMOVE_LOCK créée par la version de build vérifiée du pilote | Balise qui ne correspond pas à la balise IoAcquireRemoveLock précédente | Balise IoAcquireRemoveLock précédente | La balise IoReleaseRemoveLockAndWait actuelle ne correspond pas à la balise IoAcquireRemoveLock précédente. Si le pilote appelant IoReleaseRemoveLock n’est pas une build cochée, le paramètre 2 est l’adresse de la structure d’ombre IO_REMOVE_LOCK créée par driver Verifier pour le compte du pilote. Dans ce cas, l’adresse de la structure de IO_REMOVE_LOCK utilisée par le pilote n’est pas du tout utilisée, car le vérificateur de pilotes remplace l’adresse de verrouillage pour toutes les API de suppression de verrou. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Vérification des E/S de Driver Verifier est active. |
0xD7 | Adresse de la structure de suppression de verrou de build vérifiée utilisée en interne par le vérificateur de pilotes | Adresse de la structure Remove Lock spécifiée par le pilote | Réservé | Un verrou de suppression ne peut pas être réinitialisé, même après avoir appelé IoReleaseRemoveLockAndWait, car d’autres threads peuvent toujours utiliser ce verrou (en appelant IoAcquireRemoveLock). Le pilote doit allouer le verrou de suppression à l’intérieur de son extension d’appareil et l’initialiser une seule fois. Le verrou sera supprimé avec l’extension de l’appareil. |
0xDA | Adresse de départ du pilote | Adresse de rappel WMI à l’intérieur du pilote | Réservé | Une tentative de déchargement d’un pilote qui n’a pas annulé sa fonction de rappel WMI a été effectuée. |
0xDB | Adresse de l’objet d’appareil | Réservé | Réservé | Une tentative de suppression d’un objet d’appareil qui n’a pas été désinscrit de WMI a été effectuée. |
0xDC | Réservé | Réservé | Réservé | Une valeur RegHandle non valide a été spécifiée en tant que paramètre de la fonction EtwUnregister. |
0xDD | Adresse de l’appel à EtwRegister | Adresse de départ du pilote de déchargement | Pour Windows 8 et versions ultérieures, ce paramètre est la valeur ETW RegHandle. | Une tentative de déchargement d’un pilote sans appeler EtwUnregister a été effectuée. |
0xDF | Adresse de l’objet de synchronisation | 0 | 0 | L’objet de synchronisation se trouve dans l’espace d’adressage de session. Les objets de synchronisation ne sont pas autorisés dans l’espace d’adressage de session, car ils peuvent être manipulés à partir d’une autre session ou à partir de threads système qui n’ont pas d’espace d’adressage virtuel de session. |
0xE0 | Adresse en mode utilisateur utilisée comme paramètre | Taille ,en octets, de la plage d’adresses utilisée comme paramètre | Réservé | Un appel a été effectué à une fonction de noyau du système d’exploitation qui a spécifié une adresse en mode utilisateur en tant que paramètre. |
0xE1 | Adresse de l’objet de synchronisation | Réservé | Réservé | Un objet de synchronisation a une adresse non valide ou paginable. |
0xE2 | Adresse de l’IRP | Adresse en mode utilisateur présente dans l’IRP | Réservé | Un IRP avec Irp-RequestorMode> défini sur KernelMode a été trouvé avoir une adresse en mode utilisateur comme l’un de ses membres. |
0xE3 | Adresse de l’appel à l’API | Adresse en mode utilisateur utilisée comme paramètre dans l’API | Réservé | Un pilote a effectué un appel à une routine ZwXxx en mode noyau avec une adresse en mode utilisateur comme paramètre. |
0xE4 | Adresse de l’appel à l’API | Adresse de la structure de UNICODE_STRING mal formée | Réservé | Un pilote a effectué un appel à une routine ZwXxx en mode noyau avec une structure UNICODE_STRING mal formée en tant que paramètre. |
0xE5 | IRQL actuel | Réservé | Réservé | Un appel a été effectué à une API de noyau à l’IRQL incorrect. |
0xE6 | Adresse à l’intérieur du pilote effectuant l’appel de l’API Zw | IRQL actuel | API de noyau spéciales. | L’API Kernel Zw n’a pas été appelée à IRQL = PASSIVE_LEVEL et avec des API de noyau spéciales activées. |
0xEA | IRQL actuel | Nombre de désactivations APC du thread | Adresse du pushlock | Un pilote a tenté d’acquérir un pushlock alors que les API sont activés. |
0xEB | IRQL actuel | Nombre de désactivations APC du thread | Adresse du pushlock | Un pilote a tenté de libérer un pushlock pendant que les API sont activés. |
0xF0 | Adresse de la mémoire tampon de destination | Adresse de la mémoire tampon source | Nombre d’octets à copier | Un pilote appelé fonction memcpy avec des mémoires tampons source et de destination qui se chevauchent. |
0xF5 | Adresse du handle NULL | Type d’objet | Réservé | Un pilote a passé un handle NULL à ObReferenceObjectByHandle. |
0xF6 | Gérer la valeur référencée | Adresse du processus actuel | Adresse à l’intérieur du pilote qui effectue la référence incorrecte | Un pilote référence un handle en mode utilisateur en tant que mode noyau. |
0xF7 | Valeur de handle spécifiée par l’appelant | Type d’objet spécifié par l’appelant | AccessMode spécifié par l’appelant | Un pilote tente d’obtenir une référence en mode utilisateur pour un handle de noyau dans le contexte du processus système. |
0xFA | Adresse de routine d’achèvement. | Valeur IRQL avant d’appeler la routine d’achèvement | Valeur IRQL actuelle, après avoir appelé la routine d’achèvement | La routine d’achèvement IRP est retournée à un IRQL qui était différent de l’IRQL auquel la routine a été appelée. |
0xFB | Adresse de routine d’achèvement | Nombre de désactivations APC du thread actuel | Nombre de désactivations APC du thread avant d’appeler la routine d’achèvement IRP | Le nombre de désactivations APC du thread a été modifié par la routine d’achèvement IRP du pilote. Le nombre de désactivations APC est décrémenté chaque fois qu’un pilote appelle KeEnterCriticalRegion, FsRtlEnterFileSystem ou acquiert un mutex. Le nombre de désactivations APC est incrémenté chaque fois qu’un pilote appelle KeLeaveCriticalRegion, KeReleaseMutex ou FsRtlExitFileSystem. Étant donné que ces appels doivent toujours être en paires, le nombre de désactivations d’APC doit être égal à zéro chaque fois qu’un thread est supprimé. Une valeur négative indique qu’un pilote a désactivé les appels APC sans les réactiver. Une valeur positive indique que l’inverse est vrai. |
0xFC | Adresse à l’intérieur du pilote qui effectue l’appel d’API incorrect. | Valeur ApcContext fournie. | Réservé | Appel de ZwNotifyChangeKey (en mode noyau) avec une valeur ApcContext non prise en charge. |
0x105 à 0x140
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0x105 | Adresse de l’IRP | 0 | 0 | Le pilote utilise ExFreePool au lieu d’IoFreeIrp pour libérer l’IRP. |
0x10A | 0 | 0 | 0 | Le pilote tente de facturer le quota de pool au processus d’inactivité. |
0x10B | 0 | 0 | 0 | Le pilote tente de charger le quota de pool à partir d’une routine DPC. Cette erreur est incorrecte, car le contexte de processus actuel n’est pas défini. |
0x110 | Adresse de la routine de service d’interruption | Adresse du contexte étendu qui a été enregistré avant l’exécution de l’ISR | L’adresse du contexte étendu a été enregistrée après l’exécution de l’ISR | La routine de service d’interruption (ISR) du pilote a endommagé le contexte de thread étendu. |
0x111 | Adresse de la routine de service d’interruption | IRQL avant d’exécuter ISR | IRQL après l’exécution d’ISR | La routine de service d’interruption a retourné un IRQL modifié. |
0x115 | Adresse du thread responsable de l’arrêt, qui peut être bloquée. | 0 | 0 | Le vérificateur de pilotes a détecté que le système a pris plus de 20 minutes et que l’arrêt n’est pas terminé. |
0x11A | IRQL actuel | 0 | 0 | Le pilote appelle KeEnterCriticalRegion au APC_LEVEL IRQL > . |
0x11B | IRQL actuel | 0 | 0 | Le pilote appelle KeLeaveCriticalRegion au APC_LEVEL IRQL > . |
0x120 | Adresse de la valeur IRQL | Adresse de l’objet à attendre | Adresse de la valeur de délai d’expiration | Le thread attend au DISPATCH_LEVEL IRQL > . Les appelants de KeWaitForSingleObject ou KeWaitForMultipleObjects doivent s’exécuter à IRQL <= DISPATCH_LEVEL. |
0x121 | Adresse de la valeur IRQL | Adresse de l’objet à attendre | Adresse de la valeur de délai d’expiration | Le thread attend à IRQL est égal à DISPATCH_LEVEL et le délai d’expiration est NULL. Les appelants de KeWaitForSingleObject ou KeWaitForMultipleObjects peuvent s’exécuter sur IRQL <= DISPATCH_LEVEL. Si un pointeur NULL est fourni pour timeout, le thread appelant reste dans un état d’attente jusqu’à ce que l’objet soit signalé. |
0x122 | Adresse de la valeur IRQL | Adresse de l’objet à attendre | Adresse de la valeur de délai d’expiration | Le thread attend à DISPATCH_LEVEL et la valeur délai d’expiration n’est pas égale à zéro (0). Si timeout != 0, les appelants de KeWaitForSingleObject ou KeWaitForMultipleObjects doivent s’exécuter à IRQL <= APC_LEVEL. |
0x123 | Adresse de l’objet à attendre | 0 | 0 | L’appelant de KeWaitForSingleObject ou KeWaitForMultipleObjects a spécifié l’attente en tant que UserMode, mais l’objet se trouve sur la pile du noyau. |
0x130 | Adresse de l’élément de travail | 0 | 0 | L’élément de travail se trouve dans l’espace d’adressage de session. Les éléments de travail ne sont pas autorisés dans l’espace d’adressage de session, car ils peuvent être manipulés à partir d’une autre session ou à partir de threads système qui n’ont pas d’espace d’adressage virtuel de session. |
0x131 | Adresse de l’élément de travail | 0 | 0 | L’élément de travail est en mémoire paginable. Les éléments de travail doivent être en mémoire non modifiable, car le noyau les utilise à DISPATCH_LEVEL. |
0x135 | Adresse de l’IRP | Nombre de millisecondes autorisées entre l’appel IoCancelIrp et la fin de cette IRP | 0 | L’IRP annulée ne s’est pas terminée dans le temps prévu Le pilote a pris plus de temps que prévu pour terminer l’IRP annulé. |
0x13A | Adresse du bloc de pool en cours de libération | Valeur incorrecte | Adresse de la valeur incorrecte | Le pilote a appelé ExFreePool et le vérificateur de pilotes détecte une erreur dans l’une des valeurs internes utilisées pour suivre l’utilisation du pool. |
0x13B | Adresse du bloc de pool en cours de libération | Adresse de la valeur incorrecte | Adresse d’un pointeur vers la page mémoire incorrecte | Le pilote a appelé ExFreePool et le vérificateur de pilotes détecte une erreur dans l’une des valeurs internes utilisées pour suivre l’utilisation du pool. |
0x13C | Adresse du bloc de pool en cours de libération | Valeur incorrecte | Adresse de la valeur incorrecte | Le pilote a appelé ExFreePool et le vérificateur de pilotes détecte une erreur dans l’une des valeurs internes utilisées pour suivre l’utilisation du pool. |
0x13D | Adresse du bloc de pool en cours de libération | Adresse de la valeur incorrecte | Valeur correcte attendue | Le pilote a appelé ExFreePool et le vérificateur de pilotes détecte une erreur dans l’une des valeurs internes utilisées pour suivre l’utilisation du pool. |
0x13E | Adresse de bloc de pool spécifiée par l’appelant | Adresse de bloc de pool suivie par le vérificateur de pilote | Pointeur vers l’adresse de bloc de pool suivie par le vérificateur de pilotes | L’adresse de bloc de pool spécifiée par l’appelant d’ExFreePool est différente de l’adresse suivie par le vérificateur de pilote. |
0x13F | Adresse du bloc de pool en cours de libération | Nombre d’octets libérés | Pointeur vers le nombre d’octets suivis par le vérificateur de pilote | Le nombre d’octets de mémoire libérés dans l’appel à ExFreePool est différent du nombre d’octets suivis par le vérificateur de pilote. |
0x140 | IRQL actuel | Adresse MDL | Adresse virtuelle associée à cette MDL | Une MDL non verrouillée a été construite à partir de la mémoire paginable ou tradable. |
0x141 | Adresse physique la plus élevée demandée par le pilote pour l’allocation | Nombre d’octets à allouer | 0 | Le pilote demande explicitement de la mémoire physique inférieure à 4 Go. |
0x1000 à 0x100B - Interblocages
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0x1000 | Adresse de la ressource | Réservé | Réservé | Interblocage automatique : le thread actuel a essayé d’acquérir de manière récursive et exclusive une ressource qu’il possède uniquement partagée. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Détection d’interblocage du vérificateur de pilote est active. |
0x1001 | Adresse de la ressource qui a été la cause finale de l’interblocage | Réservé | Réservé | Interblocage : une violation de hiérarchie de verrou a été détectée. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Détection d’interblocage du vérificateur de pilote est active. (Utilisez l’extension !deadlock pour plus d’informations.) |
0x1002 | Adresse de la ressource | Réservé | Réservé | Ressource non initialisée : une ressource a été acquise sans avoir été initialisée en premier. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Détection de blocage de Driver Verifier est active. |
0x1003 | Adresse de la ressource qui est en cours d’interblocage | Adresse de la ressource qui aurait dû être publiée en premier | Réservé | Publication inattendue : une ressource a été publiée dans un ordre incorrect. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Détection de blocage de Driver Verifier est active. |
0x1004 | Adresse de la ressource | Adresse du thread qui a acquis la ressource | Adresse du thread actif | Thread inattendu : le thread incorrect libère une ressource. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Détection de blocage de Driver Verifier est active. |
0x1005 | Adresse de la ressource | Réservé | Réservé | Initialisation multiple : une ressource est initialisée plusieurs fois. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Détection de blocage de Driver Verifier est active. |
0x1007 | Adresse de la ressource | Réservé | Réservé | Ressource non acquise : une ressource est publiée avant d’avoir été acquise. Un bogue case activée avec ce paramètre se produit uniquement lorsque l’option Détection de blocage de Driver Verifier est active. |
0x1008 | Adresse de verrouillage | Réservé | Réservé | Le pilote a essayé d’acquérir un verrou à l’aide d’une API incompatible pour ce type de verrou. |
0x1009 | Adresse de verrouillage | Réservé | Réservé | Le pilote a essayé de libérer un verrou à l’aide d’une API qui ne correspond pas à ce type de verrou. |
0x100A | Adresse du thread de propriétaire | Réservé | Le thread terminé est propriétaire du verrou. | |
0x100B | Adresse de verrouillage | Adresse du thread de propriétaire | Réservé | Le verrou supprimé appartient toujours à un thread. |
0x1010 | Objet d’appareil pour lequel l’IRP d’écriture a été émis. | Adresse de l’IRP. | System-Space adresse virtuelle pour la mémoire tampon décrite par mdL. | Le contenu de la mémoire tampon MDL invariante pour l’Irp d’écriture a été modifié. |
0x1011 | Objet d’appareil pour lequel l’IRP d’écriture a été émis. | Adresse de l’IRP. | System-Space adresse virtuelle pour la mémoire tampon décrite par mdL. | Le contenu de la mémoire tampon MDL invariante pour Read Irp a été modifié pendant la répartition ou la mémoire tampon soutenue par des pages factices. |
0x1012 | Pointeur vers la chaîne décrivant la violation. | Données impliquées dans cette altération (0 si elles ne sont pas utilisées). | Données impliquées dans cette altération (0 si elles ne sont pas utilisées). | Le stockage de l’état de l’extension du vérificateur a détecté une altération. |
0x1013 | Pointeur vers l’objet pilote. | Pointeur vers les rappels d’E/S d’origine capturés. | Réservé (inutilisé). | Le vérificateur a détecté une altération interne dans les rappels d’E/S d’origine capturés. |
0x2000 à 0x2005 - Problèmes d’intégrité du code
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0x2000 | Adresse dans le code du pilote où l’erreur a été détectée. | Type de pool. | Balise de pool (si fournie). | Problème d’intégrité du code : l’appelant a spécifié un type de pool exécutable. (Attendu : NonPagedPoolNx) |
0x2001 | Adresse dans le code du pilote où l’erreur a été détectée. | Protection des pages (WIN32_PROTECTION_MASK). | 0 | Problème d’intégrité du code : l’appelant a spécifié une protection de page exécutable. (Attendu : bits PAGE_EXECUTE* effacés) |
0x2002 | Adresse dans le code du pilote où l’erreur a été détectée. | Priorité de page (MM_PAGE_PRIORITY logiquement OR’d avec MdlMapping*). | 0 | Problème d’intégrité du code : l’appelant a spécifié un mappage MDL exécutable. (Attendu : MdlMappingNoExecute) |
0x2003 | Nom du fichier image (chaîne Unicode). | Adresse de l’en-tête de section. | Nom de section (chaîne encodée UTF-8). | Problème d’intégrité du code : l’image contient une section exécutable et accessible en écriture. |
0x2004 | Nom du fichier image (chaîne Unicode). | Adresse de l’en-tête de section. | Nom de section (chaîne encodée UTF-8). | Problème d’intégrité du code : l’image contient une section qui n’est pas alignée sur la page. |
0x2005 | Nom du fichier image (chaîne Unicode). | Répertoire IAT. | Nom de la section (chaîne encodée en UTF-8). | Problème d’intégrité du code : l’image contient un IAT situé dans une section exécutable. |
0xA001 à 0xA00D - Problèmes de commutateur de machine virtuelle
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0xA001 | Pointeur vers l’objet NetBufferList | Pointeur vers l’objet de commutateur virtuel (si NON NULL) | Réservé (inutilisé) | Commutateur de machine virtuelle : Le SourceHandle pour le NetBufferList fourni par l’appelant doit être défini. Consultez la routine AllocateNetBufferListForwardingContext . |
0xA002 | Pointeur vers l’objet NetBufferList | Pointeur vers l’objet de commutateur virtuel (si NON NULL). | Réservé (inutilisé) | Commutateur de machine virtuelle : l’appelant a fourni les détails de transfert de NetBufferList n’est pas égal à zéro. Consultez la routine AllocateNetBufferListForwardingContext . |
0xA003 | Pointeur vers l’objet NetBufferList | Pointeur vers l’objet de commutateur virtuel (si NON NULL). | Réservé (inutilisé) | Commutateur de machine virtuelle : l’appelant a fourni un NetBufferList avec un en-tête de paquet ou un contexte de routage null. Consultez Instructions de gestion des paquets pour le chemin des données de commutateur extensible. |
0xA004 | ID du port non valide | Index de carte réseau | Pointeur vers l’objet de commutateur virtuel (si NON NULL). | Commutateur de machine virtuelle : l’appelant a spécifié une combinaison d’index de port et de carte réseau non valide. Consultez États du port et de la carte réseau du commutateur extensible Hyper-V. |
0xA005 | Pointeur vers l’objet NetBufferList | Pointeur vers la liste Destination. | Pointeur vers l’objet de commutateur virtuel (si NON NULL). | Commutateur de machine virtuelle : l’appelant a fourni une destination non valide. Consultez AddNetBufferListDestination et UpdateNetBufferListDestinations. |
0xA006 | Pointeur vers l’objet NetBufferList | Pointeur vers l’objet de commutateur virtuel (si NON NULL). | Réservé (inutilisé) | Commutateur de machine virtuelle : l’appelant a fourni une carte réseau source ou un objet Port non valide. Consultez États du port et de la carte réseau du commutateur extensible Hyper-V. |
0xA007 | Pointeur vers l’objet NetBufferList | Pointeur vers l’objet de commutateur virtuel (si NON NULL). | Réservé (inutilisé) | Commutateur de machine virtuelle : l’appelant a fourni une liste de destination non valide. Consultez AddNetBufferListDestination et UpdateNetBufferListDestinations. |
0xA008 | Objet de carte réseau parente | Index de carte réseau | Pointeur vers l’objet de commutateur virtuel (si NON NULL). | Commutateur de machine virtuelle : tentative de référence d’une carte réseau quand elle n’est pas autorisée. Consultez États du port et de la carte réseau du commutateur extensible Hyper-V. |
0xA009 | Port référencé | Pointeur vers l’objet de commutateur virtuel (si NON NULL) | Réservé (inutilisé) | Commutateur de machine virtuelle : essayez de référencer un port quand il n’est pas autorisé. Consultez États du port et de la carte réseau du commutateur extensible Hyper-V. |
0xA00A | Pointeur vers l’objet NetBufferList | Objet ContextTypeInfo | Réservé (inutilisé) | Commutateur de machine virtuelle : le contexte d’échec est déjà défini. Consultez SetNetBufferListSwitchContext. |
0xA00B | Pointeur vers l’objet NetBufferList | NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_* | Pointeur vers l’objet de commutateur virtuel (si NON NULL) | Commutateur de machine virtuelle : direction non valide fournie pour la suppression de NetBufferList. Consultez ReportFilteredNetBufferLists. |
0xA00C | Pointeur vers l’objet NetBufferList | Valeur d’envoi d’indicateurs | Pointeur vers l’objet de commutateur virtuel (si NON NULL) | Commutateur de machine virtuelle : la chaîne NetBufferList a plusieurs ports sources lorsque NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE indicateur est défini. Consultez Indicateurs d’envoi et de réception du commutateur extensible Hyper-V. |
0xA00D | Pointeur vers l’objet NetBufferList | Pointeur vers le contexte de commutateur virtuel | Pointeur vers l’objet de commutateur virtuel (si NON NULL) | Commutateur de machine virtuelle : un ou plusieurs NetBufferLists dans la chaîne ont une destination non valide quand NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP indicateur est défini. Consultez Indicateurs d’envoi et de réception du commutateur extensible Hyper-V. |
0xA00E | Pointeur vers l’objet NetBufferLists. | Pointeur vers le contexte du commutateur virtuel. | Pointeur vers l’objet de commutateur virtuel (si NON NULL). | Commutateur de machine virtuelle : tentative d’exécution de NetBufferList via WNV lorsque VMS_NBL_ROUTING_CONTEXT_FLAG_NO_WNV_PROCESSING indicateur est défini. |
0x00020002 à 0x00020022 - Violations des règles de conformité DDI
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0x00020002 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlApcLte. La règle spécifie que le pilote doit appeler ObGetObjectSecurity et ObReleaseObjectSecurity uniquement lorsque IRQL <= APC_LEVEL. |
0x00020003 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlDispatch. La règle IrqlDispatch spécifie que le pilote doit appeler certaines routines uniquement lorsque IRQL = DISPATCH_LEVEL |
0x00020004 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlExAllocatePool. La règle IrqlExAllocatePool spécifie que le pilote appelle ExAllocatePoolWithTag et ExAllocatePoolWithTagPriority uniquement à l’adresse IRQL<=DISPATCH_LEVEL. |
0x00020005 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlExApcLte1. La règle IrqlExApcLte1 spécifie que le pilote appelle ExAcquireFastMutex et ExTryToAcquireFastMutex uniquement à IRQL <= APC_LEVEL. |
0x00020006 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a enfreint la règle de conformité DDI IrqlExApcLte2. La règle IrqlExApcLte2 spécifie que le pilote appelle certaines routines uniquement lorsque IRQL <= APC_LEVEL. |
0x00020007 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlExApcLte3. La règle IrqlExApcLte3 spécifie que le pilote doit appeler certaines routines de support exécutif uniquement lorsque IRQL <= APC_LEVEL. |
0x00020008 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a enfreint la règle de conformité DDI IrqlExPassive. La règle IrqlExPassive spécifie que le pilote doit appeler certaines routines de support exécutif uniquement lorsque IRQL = PASSIVE_LEVEL. |
0x00020009 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlIoApcLte. La règle IrqlIoApcLte spécifie que le pilote doit appeler certaines routines du gestionnaire d’E/S uniquement lorsque IRQL <= APC_LEVEL. |
0x0002000A | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlIoPassive1. La règle IrqlIoPassive1 spécifie que le pilote doit appeler certaines routines du gestionnaire d’E/S uniquement quand IRQL = PASSIVE_LEVEL. |
0x0002000B | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlIoPassive2. La règle IrqlIoPassive2 spécifie que le pilote doit appeler certaines routines du gestionnaire d’E/S uniquement lorsque IRQL = PASSIVE_LEVEL. |
0x0002000C | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlIoPassive3. La règle IrqlIoPassive3 spécifie que le pilote doit appeler certaines routines du gestionnaire d’E/S uniquement lorsque IRQL = PASSIVE_LEVEL. |
0x0002000D | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlIoPassive4. La règle IrqlIoPassive4 spécifie que le pilote doit appeler certaines routines du gestionnaire d’E/S uniquement lorsque IRQL = PASSIVE_LEVEL. |
0x0002000E | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlIoPassive5. La règle IrqlIoPassive5 spécifie que le pilote doit appeler certaines routines du gestionnaire d’E/S uniquement lorsque IRQL = PASSIVE_LEVEL. |
0x0002000F | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlKeApcLte1. La règle IrqlKeApcLte1 spécifie que le pilote doit appeler certaines routines de noyau uniquement quand IRQL <= APC_LEVEL. |
0x00020010 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlKeApcLte2. La règle IrqlKeApcLte2 spécifie que le pilote doit appeler certaines routines de noyau uniquement quand IRQL <= APC_LEVEL. |
0x00020011 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a violé la règle de conformité DDI IrqlKeDispatchLte. La règle IrqlKeDispatchLte spécifie que le pilote doit appeler certaines routines de noyau uniquement lorsque IRQL <= DISPATCH_LEVEL. |
0x00020015 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de la règle. | Réservé | Le pilote a enfreint la règle de conformité DDI IrqlKeReleaseSpinLock. La règle IrqlKeReleaseSpinLock spécifie que le pilote doit appeler KeReleaseSpinLock uniquement lorsque IRQL = DISPATCH_LEVEL. |
0x00020016 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de règle. | Réservé | Le pilote a enfreint la règle de conformité DDI IrqlKeSetEvent. La règle IrqlKeSetEvent spécifie que la routine KeSetEvent n’est appelée qu’à IRQL <= DISPATCH_LEVEL lorsque Wait a la valeur FALSE et à IRQL <= APC_LEVEL lorsque Wait a la valeur TRUE. |
0x00020019 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de règle. | Réservé | Le conducteur a enfreint la règle de conformité DDI IrqlMmApcLte. La règle IrqlMmApcLte spécifie que le pilote doit appeler certaines routines du gestionnaire de mémoire uniquement lorsque IRQL <= APC_LEVEL. |
0x0002001A | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de règle. | Réservé | Le pilote a enfreint la règle de conformité DDI IrqlMmDispatch. La règle IrqlMmDispatch spécifie que le pilote doit appeler MmFreeContiguousMemory uniquement lorsque IRQL = DISPATCH_LEVEL. |
0x0002001B | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de règle. | Réservé | Le conducteur a enfreint la règle de conformité DDI IrqlObPassive. La règle IrqlObPassive spécifie que le pilote doit appeler ObReferenceObjectByHandle uniquement lorsque IRQL = PASSIVE_LEVEL. |
0x0002001C | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de règle. | Réservé | Le pilote a enfreint la règle de conformité DDI IrqlPsPassive. La règle IrqlPsPassive spécifie que le pilote doit appeler certaines routines de processus et de gestionnaire de threads uniquement lorsque IRQL = PASSIVE_LEVEL. |
0x0002001D | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument de !ruleinfo). | Adresse d’états supplémentaires (troisième argument à !ruleinfo). | Le conducteur a enfreint la règle de conformité DDI IrqlReturn. |
0x0002001E | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de règle. | Réservé | Le conducteur a enfreint la règle de conformité DDI IrqlRtlPassive. La règle IrqlRtlPassive spécifie que le pilote doit appeler RtlDeleteRegistryValue uniquement lorsque IRQL = PASSIVE_LEVEL. |
0x0002001F | Pointeur vers la chaîne qui décrit la condition de règle violée. | Pointeur facultatif vers la ou les variables d’état de règle. | Réservé | Le conducteur a enfreint la règle de conformité DDI IrqlZwPassive. La règle IrqlZwPassive spécifie que le pilote doit appeler ZwClose uniquement lorsque IRQL = PASSIVE_LEVEL. |
0x00020022 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Réservé (inutilisé) | Réservé (inutilisé) | Le pilote a enfreint la règle de conformité DDI IrqlIoDispatch. |
0x00020023 | Pointeur vers la chaîne décrivant la condition de règle violée. | Réservé (inutilisé). | Réservé (inutilisé). | Le pilote a enfreint la règle de conformité DDI IrqlIoRtlZwPassive. La règle IrqlIoRtlZwPassive spécifie que le pilote appelle les DDIs répertoriés dans la règle uniquement lorsqu’il s’exécute à IRQL = PASSIVE_LEVEL. |
0x00020024 | Pointeur vers la chaîne décrivant la condition de règle violée. | Réservé (inutilisé). | Réservé (inutilisé). | Le conducteur a enfreint la règle de conformité DDI IrqlNtifsApcPassive. La règle IrqlNtifsApcPassive spécifie que le pilote appelle les DDIs répertoriés dans la règle uniquement lorsqu’il s’exécute à l’adresse IRQL = PASSIVE_LEVEL ou à IRQL <= APC_LEVEL. |
0x00020025 | Pointeur vers la chaîne décrivant la condition de règle violée. | Réservé (inutilisé). | Réservé (inutilisé). | Le pilote a enfreint la règle de conformité DDI interne à Microsoft IrqlKeMore. |
0x00040003 à 0x00043006 - Violations des règles de conformité DDI
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0x00040003 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument de !ruleinfo). | Adresse d’états supplémentaires (troisième argument à !ruleinfo). | Le pilote a enfreint la règle de conformité DDI CriticalRegions. |
0x00040006 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument de !ruleinfo). | Adresse d’états supplémentaires (troisième argument à !ruleinfo). | Le pilote a enfreint la règle de conformité DDI QueuedSpinLock. |
0x00040007 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument de !ruleinfo). | Adresse d’états supplémentaires (troisième argument à !ruleinfo). | Le pilote a enfreint la règle de conformité DDI QueuedSpinLockRelease. |
0x00040009 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument de !ruleinfo). | Adresse d’états supplémentaires (troisième argument à !ruleinfo). | Le pilote a enfreint la règle de conformité DDI SpinLock. |
0x0004000A | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument de !ruleinfo) | Adresse d’états supplémentaires (troisième argument à !ruleinfo). | Le pilote a violé la règle de conformité DDI SpinlockRelease. |
0x0004000E | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI GuardedRegions. |
0x0004100B | Pointeur vers la chaîne qui décrit la condition de règle violée. | Réservé (inutilisé) | Réservé (inutilisé) | Le pilote a violé la règle de conformité DDI RequestedPowerIrp. |
0x0004100F | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI IoSetCompletionExCompleteIrp. |
0x00043006 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Réservé (inutilisé) | Réservé (inutilisé) | Le pilote a violé la règle de conformité DDI PnpRemove. |
0x00081001 à 0x00082005 - Violations des règles de conformité du pilote AVStream
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0x00081001 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsDeviceMutex. |
0x00081002 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsStreamPointerClone. |
0x00081003 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Réservé (inutilisé) | Réservé (inutilisé) | Le pilote a violé la règle de conformité DDI KsStreamPointerLock. |
0x00081004 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a enfreint la règle de conformité DDI KsStreamPointerUnlock. |
0x00081005 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Réservé (inutilisé) | Réservé (inutilisé) | Le pilote a enfreint la règle de conformité DDI KsCallbackReturn. |
0x00081006 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsIrqlDeviceCallbacks. |
0x00081007 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsIrqlFilterCallbacks. |
0x00081008 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsIrqlPinCallbacks. |
0x00081009 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Réservé (inutilisé) | Réservé (inutilisé) | Le pilote a violé la règle de conformité DDI KsIrqlDDIs. |
0x0008100A | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsFilterMutex. |
0x0008100B | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a enfreint la règle de conformité DDI KsProcessingMutex. |
0x0008100C | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsInvalidStreamPointer. |
0x00082001 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsTimedPinSetDeviceState. |
0x00082002 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsTimedDeviceCallbacks. |
0x00082003 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsTimedFilterCallbacks. |
0x00082004 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsTimedPinCallbacks. |
0x00082005 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI KsTimedProcessingMutex. |
0x00091001 à 0x0009400C - Violations des règles de conformité DDI NDIS
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0x00091001 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI NdisOidComplete. |
0x00091002 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI NdisOidDoubleComplete. |
0x0009100E | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de conformité DDI NdisOidDoubleRequest. |
0x00092003 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de vérification NDIS/WIFI NdisTimedOidComplete. |
0x0009200D | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de vérification NDIS/WIFI NdisTimedDataSend. |
0x0009200F | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de vérification NDIS/WIFI NdisTimedDataHang. |
0x00092010 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de vérification NDIS/WIFI NdisFilterTimedPauseComplete. |
0x00092011 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de vérification NDIS/WIFI NdisFilterTimedDataSend. |
0x00092012 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le pilote a violé la règle de vérification NDIS/WIFI NdisFilterTimedDataReceive. |
0x00093004 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le conducteur a violé la règle de vérification NDIS/WIFI WlanAssociation. |
0x00093005 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le conducteur a violé la règle de vérification NDIS/WIFI WlanConnectionRoaming. |
0x00093006 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le conducteur a violé la règle de vérification NDIS/WIFI WlanDisassociation. |
0x00093101 | Pointeur vers la chaîne décrivant la condition de règle violée. | Réservé (inutilisé) | Réservé (inutilisé) | Le conducteur a violé la règle de vérification NDIS/WIFI WlanAssert. |
0x00094007 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le conducteur a violé la règle de vérification NDIS/WIFI WlanTimedAssociation. |
0x00094008 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le conducteur a enfreint la règle de vérification NDIS/WIFI WlanTimedConnectionRoaming. |
0x00094009 | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument à !ruleinfo). | Adresse des états supplémentaires (troisième argument pour !ruleinfo). | Le conducteur a violé la règle de vérification NDIS/WIFI WlanTimedConnectRequest. |
0x0009400B | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument de !ruleinfo). | Adresse d’états supplémentaires (troisième argument à !ruleinfo). | Le conducteur a enfreint la règle de vérification NDIS/WIFI WlanTimedLinkQuality. |
0x0009400C | Pointeur vers la chaîne qui décrit la condition de règle violée. | Adresse de l’état de la règle interne (deuxième argument de !ruleinfo). | Adresse d’états supplémentaires (troisième argument à !ruleinfo). | Le conducteur a enfreint la règle de vérification NDIS/WIFI WlanTimedScan. |
Cause
Pour obtenir une description de la cause, consultez la description de chaque code dans la section Paramètres. Vous pouvez obtenir des informations supplémentaires à l’aide de l’extension !analyze -v .
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. Vous pouvez également envisager de supprimer le pilote à l’origine de ce problème.
Si vous êtes l’enregistreur 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.
Remarques
Les codes _POOL_TYPE sont énumérés dans Ntddk.h. En particulier, 0 (zéro) indique le pool non paginé et 1 (un) indique le pool paginé.
(Windows 8 et versions ultérieures de Windows) Si la vérification dela conformité DDI provoque un bogue case activée, exécutez Static Driver Verifier sur le code source du pilote et spécifiez la règle de conformité DDI (identifiée par la valeur du paramètre 1) à l’origine du bogue case activée. Static Driver Verifier peut vous aider à localiser la cause du problème dans votre code source.
Voir aussi
Gestion d’une vérification des bogues lorsque le vérificateur de pilotes est activé