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.