Fehlerüberprüfung 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION
Die DRIVER_VERIFIER_IOMANAGER_VIOLATION Fehlerüberprüfung weist den Wert 0x000000C9 auf. Dies ist der Fehlerüberprüfungscode für alle Verstöße gegen die Überprüfung der Treiberüberprüfung.This is the bug check code for all Driver Verifier I/O Verification violations.
Wichtig
Dieser Artikel richtet sich an Programmierer*innen. Wenn Sie ein/eine Kund*in sind, der/die einen Bluescreen-Fehlercode bei der Benutzung eines Computers erhalten hat, lesen Sie bitte Fehlerbehebung bei Bluescreen-Fehlern.
DRIVER_VERIFIER_IOMANAGER_VIOLATION Parameter
Wenn die Treiberüberprüfung aktiv ist und die E/A-Überprüfung ausgewählt ist, werden verschiedene E/A-Verletzungen dazu führen, dass diese Fehlerüberprüfung ausgestellt wird. Parameter 1 identifiziert den Typ des Verstoßes.
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0x01 |
Adresse der frei gestellten IRP |
0 |
0 |
Der Treiber hat versucht, ein Objekt freizugeben, dessen Typ nicht IO_TYPE_IRP ist. |
0x02 |
Adresse der frei gestellten IRP |
0 |
0 |
Der Treiber hat versucht, ein IRP frei zu geben, das noch einem Thread zugeordnet ist. |
0x03 |
Adresse der zu sendenden IRP |
0 |
0 |
Der Treiber hat IoCallDriver an einen IRP-Typ übergeben, der nicht mit IRP_TYPE identisch ist. |
0x04 |
Adresse des Geräteobjekts |
0 |
0 |
Der Treiber hat IoCallDriver an ein ungültiges Geräteobjekt übergeben. |
0x05 |
Adresse des Geräteobjekts, das mit dem problematischen Treiber verknüpft ist |
IRQL vor IoCallDriver |
IRQL nach IoCallDriver |
Die IRQL wurde während eines Aufrufs der Treiberweiterleitungsroutine geändert. |
0x06 |
IRP-Status |
Adresse der abgeschlossenen IRP |
0 |
Der Treiber namens "IoCompleteRequest " mit einem Status, der als ausstehend (oder gleich -1) gekennzeichnet ist. |
0x07 |
Adresse der Abbruchroutine |
Adresse der abgeschlossenen IRP |
0 |
Der Treiber namens "IoCompleteRequest ", während seine Cancel-Routine noch festgelegt wurde. |
0x08 |
Adresse des Geräteobjekts |
Hauptfunktionscode für IRP |
Ausnahmestatuscode |
Der Treiber hat IoBuildAsynchronousFsdRequest an einen ungültigen Puffer übergeben. |
0x09 |
Adresse des Geräteobjekts |
E/A-Steuerungscode |
Ausnahmestatuscode |
Der Treiber hat IoBuildDeviceIoControlRequest an einen ungültigen Puffer übergeben. |
0x10 |
Aktueller IRQL |
Reserviert |
Reserviert |
IoCallDriver wurde über DISPATCH_LEVEL aufgerufen. |
0x11 |
Schnelle E/A-Verteileradresse des Treibers |
IRQL vor dem Aufrufen der Treiberverteilerroutine |
Aktueller IRQL |
IoCallDriver wurde über DISPATCH_LEVEL aufgerufen. |
0x12 |
Routineadresse des Treiberversands |
IRQL vor dem Aufrufen der Treiberverteilerroutine |
Aktueller IRQL |
IoCallDriver wurde über DISPATCH_LEVEL aufgerufen. |
0x0A |
Adresse des Geräteobjekts |
0 |
0 |
Der Treiber hat IoInitializeTimer an ein Geräteobjekt mit einem bereits initialisierten Timer übergeben. |
0x0C |
Adresse des E/A-Statusblocks |
0 |
0 |
Der Treiber hat einen E/A-Statusblock an einen IRP übergeben, dieser Block wird jedoch auf einem Stapel zugewiesen, der bereits über diesen Punkt hinausgeht. |
0x0D |
Adresse des Benutzerereignisobjekts |
0 |
0 |
Der Treiber hat ein Benutzerereignis an ein IRP übergeben, dieses Ereignis wird jedoch auf einem Stapel zugewiesen, der bereits über diesen Punkt hinausgeht. |
0x0E |
Aktueller IRQL |
Adresse von IRP |
0 |
Der Treiber namens "IoCompleteRequest " mit IRQL-DISPATCH_LEVEL > . |
0x0F |
Adresse des Geräteobjekts, an das das IRP gesendet wird |
Zeiger auf das IRP |
Zeiger auf Dateiobjekt |
Der Treiber hat eine Erstellungsanforderung mit einem dateiobjekt gesendet, das geschlossen wurde oder das geöffnet wurde. |
Zusätzlich zu den in der vorherigen Tabelle erwähnten Fehlern gibt es eine Reihe von E/A-Überprüfungsfehlern , die dazu führen, dass die Treiberüberprüfung das System angehalten, aber nicht tatsächlich Fehlerüberprüfungen sind.
Diese Fehler verursachen, dass Meldungen auf dem blauen Bildschirm, in einer Absturzabbilddatei und in einem Kerneldebugger angezeigt werden. Diese Nachrichten werden an jedem dieser Speicherorte unterschiedlich angezeigt. Wenn diese Fehler auftreten, wird der Hexadezimalfehlerprüfcode 0xC9 und die Fehlerprüfungszeichenfolge DRIVER_VERIFIER_IOMANAGER_VIOLATION nicht auf dem blauen Bildschirm oder im Debugger angezeigt, obwohl sie in einer Absturzabbilddatei angezeigt werden.
Auf dem blauen Bildschirm werden die folgenden Daten angezeigt:
Die Meldung "E/A-SYSTEMÜBERPRÜFUNGSFEHLER".
Die Meldung WDM DRIVER ERROR XXX, wobei XXX ein Hexadezimalcode ist, der den spezifischen Fehler darstellt. (Eine Liste der E/A-Fehlercodes und deren Bedeutung finden Sie in der nachstehenden Tabelle.)
Der Name des Treibers, der den Fehler verursacht hat.
In der Regel die Adresse im Treibercode, in der der Fehler erkannt wurde (Parameter 2).
Wenn ein Kernelmodus-Absturzabbild aktiviert wurde, werden die folgenden Informationen in der Absturzabbilddatei angezeigt:
Die Meldung BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION).
Der Hexadezimal-E/A-Fehlercode. (Eine Liste der E/A-Fehlercodes und deren Bedeutung finden Sie in der nachstehenden Tabelle.)
In der Regel die Adresse im Treibercode, in der der Fehler erkannt wurde (Parameter 2).
Wenn ein Kerneldebugger an das System angefügt ist, das diese Verletzung verursacht hat, werden die folgenden Informationen an den Debugger gesendet:
Die Meldung WDM DRIVER ERROR zusammen mit einer Bewertung des Schweregrads des Fehlers.
Der Name des Treibers, der den Fehler verursacht hat.
Eine beschreibende Zeichenfolge, die die Ursache dieses Fehlers erläutert. Häufig werden zusätzliche Informationen übergeben, z. B. ein Zeiger auf das IRP oder ein Zeiger auf das Geräteobjekt oder IRQL-Informationen. (Eine Liste dieser beschreibenden Zeichenfolgen und zusätzlichen Informationen finden Sie in der folgenden Tabelle.)
Eine Abfrage für weitere Aktionen. Mögliche Antworten sind b (Break), i (ignore), z (zap), r (remove) oder d (disable). Wenn sie das Betriebssystem angewiesen haben, fortzufahren, können Sie sehen, was "in der Zeile" passiert, wenn dieser Fehler nicht aufgetreten ist. Natürlich führt dies häufig zu zusätzlichen Fehlerüberprüfungen. Die Option "Zap" entfernt tatsächlich den Haltepunkt, der dazu führte, dass dieser Fehler erkannt wurde.
Hinweis: Auf diese Weise können keine anderen Fehlerüberprüfungen ignoriert werden. Nur diese Art von E/A-Überprüfungsfehlern kann ignoriert werden, und selbst diese Fehler können nur ignoriert werden, wenn ein Kerneldebugger angefügt ist.
In der folgenden Tabelle sind die E/A-Überprüfungsfehler aufgeführt, die angezeigt werden können.
E/A-Fehlercode | Severity | Fehlerursache |
---|---|---|
0x200 |
Unbekannt |
Dieser Code deckt alle unbekannten E/A-Überprüfungsfehler ab. |
0x201 |
Schwerwiegender Fehler |
Ein Gerät löscht sich selbst, während sich ein anderes Gerät darunter im Treiberstapel befindet. Dies kann daran liegen, dass der Anrufer vergessen hat, IoDetachDevice zuerst aufzurufen, oder der niedrigere Treiber hat sich möglicherweise falsch gelöscht. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. |
0x202 |
Schwerwiegender Fehler |
Ein Treiber hat versucht, von einem Geräteobjekt zu trennen, das nicht an etwas angefügt ist. Dies kann vorkommen, wenn das Trennen zweimal auf demselben Geräteobjekt aufgerufen wurde. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 – Geräteobjektadresse. |
0x203 |
Schwerwiegender Fehler |
Ein Treiber hat IoCallDriver aufgerufen, ohne die Cancel-Routine im IRP auf NULL festzulegen. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x204 |
Schwerwiegender Fehler |
Der Aufrufer wurde als Geräteobjekt in NULL übergeben. Dies ist tödlich. Param 2 - Reserviert Param 3 - Reserviert |
0x205 |
Schwerwiegender Fehler |
Der Anrufer leitet ein IRP weiter, das derzeit darunter in die Warteschlange eingereiht ist. Der Code, der IRPs verarbeitet, die STATUS_PENDING in diesem Treiber zurückgeben, scheint fehlerhaft zu sein. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x206 |
Schwerwiegender Fehler |
Der Aufrufer hat ein IRP falsch weitergeleitet (Steuerelementfeld nicht null). Der Treiber sollte IoCopyCurrentIrpStackLocationToNext oder IoSkipCurrentIrpStackLocation verwenden. Param 2 - Reserviert Param 3 - Reserviert |
0x207 |
Schwerwiegender Fehler |
Der Aufrufer hat den Stapel manuell kopiert und versehentlich die Abschlussroutine der oberen Ebene kopiert. Der Treiber sollte IoCopyCurrentIrpStackLocationToNext verwenden. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x208 |
Schwerwiegender Fehler |
Dieses IRP ist dabei, keine Stapelspeicherorte mehr zu haben. Jemand hat diese IRP möglicherweise von einem anderen Stapel weitergeleitet. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x209 |
Schwerwiegender Fehler |
Der Anrufer schließt ein IRP ab, das derzeit darunter in die Warteschlange eingereiht ist. Der Code, der IRPs verarbeitet, die STATUS_PENDING in diesem Treiber zurückgeben, scheint fehlerhaft zu sein. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x20A |
Schwerwiegender Fehler |
Der Anrufer von IoFreeIrp gibt ein IRP frei, das noch verwendet wird. Param 2 - Reserviert Param 3 - Reserviert |
0x20B |
Schwerwiegender Fehler |
Der Anrufer von IoFreeIrp gibt ein IRP frei, das noch verwendet wird. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x20C |
Schwerwiegender Fehler |
Der Aufrufer von IoFreeIrp gibt ein IRP frei, das immer noch für einen Thread in die Warteschlange gestellt wird. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x20D |
Schwerwiegender Fehler |
Der Aufrufer von IoInitializeIrp hat ein IRP übergeben, das ioAllocateIrp zugeordnet wurde. Dies ist illegal und unnötig und hat zu einem Kontingentleck geführt. Überprüfen Sie die Dokumentation für IoReuseIrp , wenn dieses IRP wiederverwendet wird. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x20E |
Nicht schwerwiegender Fehler |
Ein PNP-IRP weist einen ungültigen Status auf. (Jedes PNP-IRP muss seinen Status für STATUS_NOT_SUPPORTED initialisiert haben.) Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x20F |
Nicht schwerwiegender Fehler |
Ein Power IRP hat einen ungültigen Status. (Jedes Power IRP muss seinen Status für STATUS_NOT_SUPPORTED initialisiert haben.) Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x210 |
Nicht schwerwiegender Fehler |
Ein WMI-IRP weist einen ungültigen Status auf. (Alle WMI-IRP müssen ihren Status für STATUS_NOT_SUPPORTED initialisiert haben.) Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x211 |
Nicht schwerwiegender Fehler |
Der Aufrufer hat ein IRP weitergeleitet, während ein Geräteobjekt im Stapel übersprungen wird. Der Aufrufer sendet wahrscheinlich IRPs an die PDO anstelle des Geräts, das von IoAttachDeviceToDeviceStack zurückgegeben wird. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x212 |
Nicht schwerwiegender Fehler |
Der Aufrufer hat papierkorbiert oder hat den IRP-Stapel nicht ordnungsgemäß kopiert. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x213 |
Nicht schwerwiegender Fehler |
Der Aufrufer hat das Statusfeld eines IRP geändert, das er nicht versteht. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x214 |
Nicht schwerwiegender Fehler |
Der Aufrufer hat das Informationsfeld eines IRP geändert, das er nicht versteht. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x215 |
Nicht schwerwiegender Fehler |
Ein nicht erfolgreicher nicht STATUS_NOT_SUPPORTED IRP-Status für IRP_MJ_PNP wird übergeben. Fehler bei PNP-IRPs. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x216 |
Nicht schwerwiegender Fehler |
Der zuvor festgelegte IRP_MJ_PNP Status wurde in STATUS_NOT_SUPPORTED konvertiert. Dieser Fehlerstatus ist für die Verwendung durch das Betriebssystem reserviert. Treiber können keinen PnP-IRP mit diesem Wert versagen. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x217 |
Nicht schwerwiegender Fehler |
Der Treiber hat kein erforderliches IRP behandelt. Der Treiber muss den Status des IRP aktualisieren, um anzugeben, ob er behandelt wurde. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x218 |
Nicht schwerwiegender Fehler |
Der Treiber hat auf ein IRP geantwortet, das für andere Geräteobjekte an anderer Stelle im Stapel reserviert ist. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x219 |
Nicht schwerwiegender Fehler |
Ein nicht erfolgreicher Nicht-STATUS_NOT_SUPPORTED-IRP-Status für IRP_MJ_POWER wird übergeben. Fehler bei POWER IRPs. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x21A |
Nicht schwerwiegender Fehler |
Der zuvor festgelegte IRP_MJ_POWER Status wurde in STATUS_NOT_SUPPORTED konvertiert. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x21B |
Nicht schwerwiegender Fehler |
Ein Fahrer hat einen verdächtigen Status zurückgegeben. Dies liegt wahrscheinlich an einem nicht initialisierten Variablenfehler im Treiber. Param 3 - IRP-Adresse. |
0x21C |
Warnung |
Der Aufrufer hat den IRP-Stapel kopiert, aber keine Abschlussroutine festgelegt. Dies ist ineffizient - verwenden Sie stattdessen IoSkipCurrentIrpStackLocation . Param 2 - Reserviert Param 3 - Reserviert |
0x21D |
Schwerwiegender Fehler |
Ein IRP-Verteilerhandler hat sich nicht ordnungsgemäß vom darunter liegenden Stapel getrennt, nachdem ein Entfernen-IRP empfangen wurde. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Geräteobjektadresse. |
0x21E |
Schwerwiegender Fehler |
Ein IRP-Verteilerhandler hat sein Geräteobjekt beim Empfang eines Entfernens von IRP nicht ordnungsgemäß gelöscht. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Geräteobjektadresse. |
0x21F |
Nicht schwerwiegender Fehler |
Ein Treiber hat keine Verteilerroutine für eine erforderliche IRP-Hauptfunktion ausgefüllt. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x220 |
Nicht schwerwiegender Fehler |
IRP_MJ_SYSTEM_CONTROL wurde von einer anderen Person als der ProviderId abgeschlossen. Dieses IRP sollte entweder früher abgeschlossen worden sein, oder es sollte weitergegeben worden sein. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – ProviderId. |
0x221 |
Schwerwiegender Fehler |
Ein IRP-Verteilerhandler für einen PDO hat sein Geräteobjekt gelöscht, aber die Hardware wurde in einer Busbeziehungsabfrage nicht als fehlt gemeldet. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Geräteobjektadresse. |
0x222 |
Schwerwiegender Fehler |
Der IRP-Verteilerhandler eines Busfilters hat sich beim Empfang eines Entfernt-IRP getrennt, wenn der PDO noch aktiv ist. Busfilter müssen in FastIoDetach-Rückrufen bereinigt werden. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Geräteobjektadresse. |
0x223 |
Schwerwiegender Fehler |
Ein IRP-Verteilerhandler für einen Busfilter hat sein Geräteobjekt gelöscht, der PDO ist jedoch weiterhin vorhanden. Busfilter müssen in FastIoDetach-Rückrufen bereinigt werden. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Geräteobjektadresse. |
0x224 |
Schwerwiegender Fehler |
Ein IRP-Verteilerhandler hat einen Status zurückgegeben, der mit dem IoStatus.Status-Feld des IRP inkonsistent ist. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Statuscode erwartet. |
0x225 |
Nicht schwerwiegender Fehler |
Ein IRP-Verteilerhandler hat einen Status zurückgegeben, der illegal ist (0xFFFFFFFF). Dies liegt wahrscheinlich an einer nicht initialisierten Stapelvariable. Verwenden Sie zum Debuggen dieses Fehlers den Befehl "ln" (Listennächste Symbole) mit der angegebenen Adresse. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Statuscode. |
0x226 |
Schwerwiegender Fehler |
Ein IRP-Verteilerhandler hat zurückgegeben, ohne dieses IRP zu übergeben oder abzuschließen, oder jemand hat vergessen, STATUS_PENDING zurückzugeben. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x227 |
Schwerwiegender Fehler |
Eine IRP-Vervollständigungsroutine befindet sich im ausgelagerten Code. (Dies ist niemals zulässig.) Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x228 |
Nicht schwerwiegender Fehler |
Die Vervollständigungsroutine eines Treibers hat das ausstehende IRP nicht markiert, wenn das Feld "PendingReturned " im IRP festgelegt wurde, das an ihn übergeben wurde. Dies kann dazu führen, dass Windows hängen bleibt, insbesondere, wenn ein Fehler vom Stapel zurückgegeben wird. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x229 |
Schwerwiegender Fehler |
Eine Abbruchroutine wurde für ein IRP festgelegt, das derzeit von Treibern verarbeitet wird, die im Stapel niedriger sind und möglicherweise ihre Abbruchroutine stompen. Param 2 - Reserviert. Param 3 - Reserviert. |
0x22A |
Nicht schwerwiegender Fehler |
Das physische Geräteobjekt (PDO) hat nicht auf ein erforderliches IRP geantwortet. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x22B |
Nicht schwerwiegender Fehler |
Das physische Geräteobjekt (PDO) hat vergessen, die Gerätebeziehungsliste mit der PDO für die TargetDeviceRelation-Abfrage auszufüllen. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x22C |
Schwerwiegender Fehler |
Der Code, der die TargetDeviceRelation-Abfrage implementiert, hat "ObReferenceObject" für den PDO nicht aufgerufen. Param 2 - Reserviert. Param 3 - Reserviert. |
0x22D |
Nicht schwerwiegender Fehler |
Der Aufrufer hat eine IRP_MJ_PNP er nicht verstanden hat, anstatt ihn zu übergeben. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x22E |
Nicht schwerwiegender Fehler |
Der Aufrufer hat einen erfolgreichen IRP_MJ_PNP abgeschlossen, anstatt ihn zu übergeben. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x22F |
Nicht schwerwiegender Fehler |
Der Aufrufer hat eine unberührte IRP_MJ_PNP abgeschlossen (anstatt das IRP nach unten zu übergeben), oder nicht-PDO hat das IRP mit dem unzulässigen Wert von STATUS_NOT_SUPPORTED fehlgeschlagen. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x230 |
Nicht schwerwiegender Fehler |
Der Aufrufer hat eine IRP_MJ_POWER er nicht verstanden hat, anstatt ihn zu übergeben. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x231 |
Schwerwiegender Fehler |
Der Aufrufer hat einen erfolgreichen IRP_MJ_POWER abgeschlossen, anstatt ihn zu übergeben. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x232 |
Nicht schwerwiegender Fehler |
Der Aufrufer hat eine unberührte IRP_MJ_POWER abgeschlossen (anstatt das IRP nach unten zu übergeben), oder nicht-PDO hat das IRP mit dem unzulässigen Wert von STATUS_NOT_SUPPORTED fehlgeschlagen. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x233 |
Nicht schwerwiegender Fehler |
Das Versionsfeld der Abfragefunktionenstruktur in einer Abfragefunktionen-IRP wurde nicht ordnungsgemäß initialisiert. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x234 |
Nicht schwerwiegender Fehler |
Das Größenfeld der Abfragefunktionenstruktur in einer Abfragefunktionen-IRP wurde nicht ordnungsgemäß initialisiert. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x235 |
Nicht schwerwiegender Fehler |
Das Adressfeld der Abfragefunktionenstruktur in einer Abfragefunktionen-IRP wurde nicht ordnungsgemäß in -1 initialisiert. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x236 |
Nicht schwerwiegender Fehler |
Das Feld "UI Number" der Abfragefunktionen in einer Abfragefunktionen-IRP wurde nicht ordnungsgemäß in -1 initialisiert. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x237 |
Schwerwiegender Fehler |
Ein Treiber hat ein IRP gesendet, das nur für die Systemverwendung eingeschränkt ist. Param 2 - Reserviert. Param 3 - Reserviert. |
0x238 |
Warnung |
Der Aufrufer von IoInitializeIrp hat ein IRP übergeben, das ioAllocateIrp zugeordnet wurde. Dies ist illegal, unnötig und wirkt sich negativ auf die Leistung im normalen Gebrauch aus. Wenn dieses IRP wiederverwendet wird, lesen Sie IoReuseIrp im Windows Driver Kit. Param 2 - Reserviert. Param 3 - Reserviert. |
0x239 |
Warnung |
Der Anrufer von IoCompleteRequest schließt ein IRP ab, das nie über einen Anruf an IoCallDriver oder PoCallDriver weitergeleitet wurde. Dies kann ein Fehler sein. Param 2 - Reserviert. Param 3 - Reserviert. |
0x23A |
Schwerwiegender Fehler |
Ein Treiber hat einen IRP an eine IRQL weitergeleitet, die für diesen wichtigen Code illegal ist. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x23B |
Nicht schwerwiegender Fehler |
Der Aufrufer hat das Statusfeld eines IRP geändert, das er nicht versteht. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
In der folgenden Tabelle sind weitere E/A-Überprüfungsfehler aufgeführt, die angezeigt werden können. Diese Fehler werden angezeigt, wenn die erweiterte E/A-Überprüfung aktiviert ist. Weitere Informationen finden Sie unter "Erweiterte E/A-Überprüfung".
E/A-Fehlercode | Severity | Fehlerursache |
---|---|---|
0x23C |
Schwerwiegender Fehler |
Ein Treiber hat ein IRP abgeschlossen, ohne die Abbruchroutine im IRP auf NULL festzulegen. Param 2 - Reserviert. Param 3 - Reserviert. |
0x23D |
Nicht schwerwiegender Fehler |
Ein Treiber hat STATUS_PENDING zurückgegeben, aber das IRP steht nicht über einen Aufruf von IoMarkIrpPending markiert. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Statuscode. |
0x23E |
Nicht schwerwiegender Fehler |
Ein Treiber hat ein ausstehendes IRP markiert, STATUS_PENDING jedoch nicht zurückgegeben. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Statuscode. |
0x23F |
Schwerwiegender Fehler |
Ein Treiber hat das DO_POWER_PAGABLE Bit nicht vom Stapel geerbt, an den er angefügt wurde. Param 2 - Reserviert. Param 3 - Reserviert. |
0x240 |
Schwerwiegender Fehler |
Ein Treiber versucht, ein Geräteobjekt zu löschen, das bereits über einen vorherigen Aufruf von IoDeleteDevice gelöscht wurde. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 2 - Reserviert. Param 3 - Reserviert. |
0x241 |
Schwerwiegender Fehler |
Ein Treiber hat sein Geräteobjekt während einer Überraschungs-IRP getrennt. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Geräteobjektadresse. |
0x242 |
Schwerwiegender Fehler |
Ein Treiber hat sein Geräteobjekt während eines Überraschungs-IRP gelöscht. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Geräteobjektadresse. |
0x243 |
Schwerwiegender Fehler |
Ein Treiber konnte das DO_DEVICE_INITIALIZING Flag am Ende von AddDevice nicht löschen. Param 2 - Reserviert. Param 3 - Reserviert. Param 4 - |
0x244 |
Schwerwiegender Fehler |
Ein Treiber hat weder das DO_BUFFERED_IO noch das DO_DIRECT_IO Flag aus dem Geräteobjekt kopiert, an das es angeschlossen ist. Param 2 - Reserviert. Param 3 - Reserviert. |
0x245 |
Schwerwiegender Fehler |
Ein Treiber hat sowohl die DO_BUFFERED_IO als auch die DO_DIRECT_IO Flags festgelegt. Diese Kennzeichen schließen sich gegenseitig aus. Param 2 - Reserviert. Param 3 - Reserviert. |
0x246 |
Schwerwiegender Fehler |
Ein Treiber konnte das DeviceType-Feld nicht aus dem Geräteobjekt kopieren, an das es angeschlossen ist. Param 2 - Reserviert. Param 3 - Reserviert. |
0x247 |
Schwerwiegender Fehler Param 2 - Reserviert. Param 3 - Reserviert. |
Ein Treiber hat ein IRP fehlgeschlagen, das nicht rechtlich nicht erfolgreich sein kann. |
0x248 |
Schwerwiegender Fehler |
Ein Treiber hat ein Geräteobjekt hinzugefügt, das kein PDO zu einer Gerätebeziehungsabfrage ist. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Geräteobjektadresse. |
0x249 |
Nicht schwerwiegender Fehler |
Ein Treiber hat zwei untergeordnete PDOs aufgezählt, die identische Geräte-IDs zurückgegeben haben. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 – Erste Geräteobjektadresse. Param 4 – Zweite Geräteobjektadresse. |
0x24A |
Schwerwiegender Fehler |
Ein Treiber hat versehentlich eine Datei-E/A-Funktion mit IRQL aufgerufen, die nicht mit PASSIVE_LEVEL identisch ist. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - Reserviert. Param 4 - Reserviert. |
0x24B |
Schwerwiegender Fehler |
Ein Treiber hat eine IRP_MN_QUERY_DEVICE_RELATIONS Anforderung vom Typ TargetDeviceRelation als erfolgreich abgeschlossen, aber die Anforderung nicht ordnungsgemäß ausgefüllt oder an den zugrunde liegenden Hardwarestapel weitergeleitet. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 – Geräteobjektadresse. |
0x24C |
Nicht schwerwiegender Fehler |
Ein Treiber hat STATUS_PENDING zurückgegeben, aber das IRP steht nicht durch einen Aufruf von IoMarkIrpPending markiert. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Statuscode. |
0x24D |
Schwerwiegender Fehler |
Ein Treiber hat ein ungültiges Geräteobjekt an eine Funktion übergeben, für die ein PDO erforderlich ist. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Geräteobjektadresse. |
0x300 |
Nicht schwerwiegender Fehler |
Ein Fahrer hat einen verdächtigen Status zurückgegeben. Dies liegt wahrscheinlich an einem nicht initialisierten Variablenfehler im Treiber. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Verdächtiger Statuscode. |
0x301 |
Nicht schwerwiegender Fehler |
Ein Treiber hat einen IRP bei IRQL-> DISPATCH_LEVEL weitergeleitet. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Falscher IRQL-Wert |
0x302 |
Nicht schwerwiegender Fehler |
Ein Treiber hat einen IRP bei IRQL > = APC_LEVEL weitergeleitet. Der E/A-Manager muss einen APC in die Warteschlange stellen, um diese Anforderung abzuschließen. Der APC kann nicht ausgeführt werden, da der Aufrufer bereits auf APC-Ebene ausgeführt wird, sodass der Aufrufer wahrscheinlich inaktiv ist. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. Param 4 – Falscher IRQL-Wert. |
0x306 |
Nicht schwerwiegender Fehler |
Der Treiber schließt eine IRP_MJ_PNP (Haupt) und IRP_MN_REMOVE_DEVICE (Nebenanforderung) mit einem Fehlerstatuscode ab. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x307 |
Nicht schwerwiegender Fehler |
Der Treiber hat eine E/A-Anforderung mit einem Ereignis ausgegeben, das bereits signalisiert und eine STATUS_PENDING Antwort empfangen hat. Dies kann dazu führen, dass die E/A abgeschlossen ist. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x310 |
Nicht schwerwiegender Fehler |
Der Treiber wird ein IRP erneut initialisiert, das noch verwendet wird. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x311 |
Nicht schwerwiegender Fehler |
Der Treiber wird ein IRP erneut initialisiert, das mit IoMakeAssociatedIrp, IoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest, IoBuildDeviceIoControlRequest erstellt wurde. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
0x312 |
Nicht schwerwiegender Fehler |
Der Aufrufer hat das Feld "IRP-Statusinformationen" mit einem Wert bereitgestellt, der größer als der Ausgabeabschnitt des Systempuffers ist. Param 2 – Die Adresse im Treibercode, in der der Fehler erkannt wurde. Param 3 - IRP-Adresse. |
Ursache
Eine Beschreibung der Ursache finden Sie in der Beschreibung der einzelnen Code im Abschnitt "Parameter".
Lösung
Diese Fehlerüberprüfung kann nur auftreten, wenn die Treiberüberprüfung angewiesen wurde, einen oder mehrere Treiber zu überwachen. Wenn Sie nicht beabsichtigen, driver Verifier zu verwenden, sollten Sie ihn deaktivieren. Weitere Informationen finden Sie unter "Steuern der Treiberüberprüfung" in "Driver Verifier". Möglicherweise sollten Sie auch den Treiber aktualisieren oder entfernen, der dieses Problem verursacht hat.
Wenn Sie der Treiberentwickler sind, verwenden Sie die informationen, die über diese Fehlerüberprüfung abgerufen wurden, um die Fehler in Ihrem Code zu beheben.
Ausführliche Informationen zur Treiberüberprüfung finden Sie unter Driver Verifier.