Fehlerüberprüfungs-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 Driver Verifier-E/A-Überprüfung .

Wichtig

Dieser Artikel richtet sich an Programmierer. Wenn Sie ein Kunde sind, der während der Verwendung Ihres Computers einen Bluescreen-Fehlercode erhalten hat, finden Sie weitere Informationen unter Behandeln von Bluescreenfehlern.

DRIVER_VERIFIER_IOMANAGER_VIOLATION-Parameter

Wenn die Treiberüberprüfung aktiv ist und E/A-Überprüfung ausgewählt ist, werden verschiedene E/A-Verstöße 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 werdenden IRP

0

0

Der Treiber hat versucht, ein Objekt freizugeben, dessen Typ nicht IO_TYPE_IRP ist.

0x02

Adresse der frei werdenden IRP

0

0

Der Treiber hat versucht, einen IRP freizusetzen, der noch einem Thread zugeordnet ist.

0x03

Adresse des gesendeten IRP

0

0

Der Treiber hat IoCallDriver einen IRP-Typ übergeben, der nicht gleich IRP_TYPE 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 einem ansündenden Treiber zugeordnet ist

IRQL vor IoCallDriver

IRQL nach IoCallDriver

Die IRQL wurde während eines Aufrufs der Dispatchroutine des Treibers geändert.

0x06

IRP-status

Adresse der abgeschlossenen IRP

0

Der Treiber mit dem Namen IoCompleteRequest mit einem status, der als ausstehend (oder gleich -1) gekennzeichnet ist.

0x07

Adresse der Abbruchroutine

Adresse der abgeschlossenen IRP

0

Der Treiber hat IoCompleteRequest aufgerufen, während seine Abbruchroutine noch festgelegt wurde.

0x08

Adresse des Geräteobjekts

IRP-Hauptfunktionscode

Ausnahmecode status

Der Treiber hat IoBuildAsynchronousFsdRequest an einen ungültigen Puffer übergeben.

0x09

Adresse des Geräteobjekts

E/A-Steuerungscode

Ausnahmecode status

Der Treiber hat IoBuildDeviceIoControlRequest an einen ungültigen Puffer übergeben.

0x10

Aktuelle IRQL

Reserviert

Reserviert

IoCallDriver wurde oben DISPATCH_LEVEL aufgerufen.

0x11

Routineadresse für die schnelle E/A-Verteiler

IRQL vor dem Aufrufen der Treiberverteilungsroutine

Aktuelle IRQL

IoCallDriver wurde oben DISPATCH_LEVEL aufgerufen.

0x12

Adresse der Treiberverteilungsroutine

IRQL vor dem Aufrufen der Treiberverteilungsroutine

Aktuelle IRQL

IoCallDriver wurde oben DISPATCH_LEVEL aufgerufen.

0x0A

Adresse des Geräteobjekts

0

0

Der Treiber hat IoInitializeTimer ein Geräteobjekt mit einem bereits initialisierten Timer übergeben.

0x0C

Adresse des E/A-status-Blocks

0

0

Der Treiber hat einen E/A-status-Block an einen IRP übergeben, aber dieser Block wird einem Stapel zugeordnet, der sich bereits über diesen Punkt hinaus gewickelt hat.

0x0D

Adresse des Benutzerereignisobjekts

0

0

Der Treiber hat ein Benutzerereignis an einen IRP übergeben, aber dieses Ereignis wird einem Stapel zugeordnet, der sich bereits über diesen Punkt gewickelt hat.

0x0E

Aktuelle IRQL

Adresse des IRP

0

Der Treiber ioCompleteRequest mit IRQL > DISPATCH_LEVEL.

0x0F

Adresse des Geräteobjekts, an das das IRP gesendet wird

Zeiger auf die IRP

Zeiger auf das Dateiobjekt

Der Treiber hat eine Erstellungsanforderung mit einem Dateiobjekt gesendet, das geschlossen wurde oder dessen geöffnetes Objekt abgebrochen 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 anhält, bei denen es sich jedoch nicht um Fehlerüberprüfungen handelt.

Diese Fehler führen dazu, dass Meldungen auf dem Bluescreen, in einer Absturzabbilddatei und in einem Kerneldebugger angezeigt werden. Diese Meldungen werden an jedem dieser Speicherorte unterschiedlich angezeigt. Wenn diese Fehler auftreten, werden der hexadezimale Fehlerprüfungscode 0xC9 und die Fehlerprüfungszeichenfolge DRIVER_VERIFIER_IOMANAGER_VIOLATION nicht auf dem Bluescreen oder im Debugger angezeigt, obwohl sie in einer Absturzabbilddatei angezeigt werden.

Auf dem Bluescreen werden die folgenden Daten angezeigt:

  • Die Meldung IO SYSTEM VERIFICATION ERROR.

  • Die Meldung WDM DRIVER ERRORXXX, wobei XXX ein Hexadezimalcode ist, der den spezifischen Fehler darstellt. (Eine Liste der E/A-Fehlercodes und deren Bedeutungen finden Sie in der folgenden Tabelle.)

  • Der Name des Treibers, der den Fehler verursacht hat.

  • In der Regel die Adresse im Treibercode, an der der Fehler erkannt wurde (Parameter 2).

Wenn ein Absturzabbild im Kernelmodus aktiviert wurde, werden die folgenden Informationen in der Absturzabbilddatei angezeigt:

  • Die Meldung BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION).

  • Der hexadezimale E/A-Fehlercode. (Eine Liste der E/A-Fehlercodes und deren Bedeutungen finden Sie in der folgenden Tabelle.)

  • In der Regel die Adresse im Treibercode, an der der Fehler erkannt wurde (Parameter 2).

Wenn ein Kerneldebugger an das System angefügt ist, das diesen Verstoß 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 die zusätzlichen Informationen, die angegeben werden, 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 anweisen, den Vorgang fortzusetzen, können Sie sehen, was "unten" passieren würde, wenn dieser Fehler nicht aufgetreten wäre. Dies führt natürlich häufig zu zusätzlichen Fehlerüberprüfungen. Die Option "zap" entfernt tatsächlich den Haltepunkt, der diesen Fehler verursacht hat.

Hinweis Auf diese Weise können keine anderen Fehlerüberprüfungen ignoriert werden. Nur solche E/A-Überprüfungsfehler können 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 Schweregrad 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 im Treiberstapel darunter befindet. Dies kann daran liegen, dass der Aufrufer vergessen hat , Zuerst IoDetachDevice aufzurufen, oder der niedrigere Treiber hat sich selbst fälschlicherweise gelöscht.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

0x202

Schwerwiegender Fehler

Ein Treiber hat versucht, sich von einem Geräteobjekt zu trennen, das an nichts angefügt ist. Dies kann auftreten, wenn das Trennen für dasselbe Geräteobjekt zweimal aufgerufen wurde.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: Adresse des Geräteobjekts.

0x203

Schwerwiegender Fehler

Ein Treiber hat IoCallDriver aufgerufen, ohne die Abbruchroutine im IRP auf NULL festzulegen.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x204

Schwerwiegender Fehler

Der Aufrufer hat NULL als Geräteobjekt übergeben. Das ist fatal.

Absatz 2 – Reserviert

Abs. 3 – Reserviert

0x205

Schwerwiegender Fehler

Der Aufrufer leitet ein IRP weiter, das sich derzeit darunter in der Warteschlange befindet. Der Code, der IRPs behandelt, die STATUS_PENDING in diesem Treiber zurückgeben, scheint fehlerhaft zu sein.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x206

Schwerwiegender Fehler

Der Aufrufer hat fälschlicherweise einen IRP weitergeleitet (Steuerfeld nicht null). Der Treiber sollte IoCopyCurrentIrpStackLocationToNext oder IoSkipCurrentIrpStackLocation verwenden.

Absatz 2 – Reserviert

Abs. 3 – Reserviert

0x207

Schwerwiegender Fehler

Der Aufrufer hat den Stapel manuell kopiert und versehentlich die Vervollständigungsroutine der oberen Ebene kopiert. Der Treiber sollte IoCopyCurrentIrpStackLocationToNext verwenden.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x208

Schwerwiegender Fehler

Bei diesem IRP sind die Stapelspeicherorte nicht mehr verfügbar. Möglicherweise hat jemand diesen IRP von einem anderen Stapel weitergeleitet.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x209

Schwerwiegender Fehler

Der Aufrufer schließt ein IRP ab, das sich derzeit darunter in der Warteschlange befindet. Der Code, der IRPs behandelt, die STATUS_PENDING in diesem Treiber zurückgeben, scheint fehlerhaft zu sein.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x20A

Schwerwiegender Fehler

Der Aufrufer von IoFreeIrp gibt ein IRP frei, das noch verwendet wird.

Absatz 2 – Reserviert

Abs. 3 – Reserviert

0x20B

Schwerwiegender Fehler

Der Aufrufer von IoFreeIrp gibt ein IRP frei, das noch verwendet wird.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x20C

Schwerwiegender Fehler

Der Aufrufer von IoFreeIrp gibt eine IRP frei, die sich noch in einer Warteschlange für einen Thread befindet.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x20D

Schwerwiegender Fehler

Der Aufrufer von IoInitializeIrp hat einen IRP übergeben, der IoAllocateIrp zugeordnet wurde. Dies ist illegal und unnötig und hat zu einem Quotenverlust geführt. Überprüfen Sie die Dokumentation für IoReuseIrp , wenn dieses IRP recycelt wird.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x20E

Nicht schwerwiegender Fehler

Ein PNP-IRP weist eine ungültige status auf. (Bei jedem PNP-IRP muss sein status für STATUS_NOT_SUPPORTED initialisiert sein.)

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x20F

Nicht schwerwiegender Fehler

Ein Power IRP weist eine ungültige status auf. (Bei jedem Power-IRP muss sein status für STATUS_NOT_SUPPORTED initialisiert sein.)

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x210

Nicht schwerwiegender Fehler

Ein WMI-IRP weist eine ungültige status auf. (Bei allen WMI-IRP muss der status für STATUS_NOT_SUPPORTED initialisiert sein.)

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x211

Nicht schwerwiegender Fehler

Der Aufrufer hat eine IRP weitergeleitet, während er ein Geräteobjekt im Stapel überspringt. Der Aufrufer sendet wahrscheinlich IRPs an die PDO und nicht an das gerät, das von IoAttachDeviceToDeviceStack zurückgegeben wird.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x212

Nicht schwerwiegender Fehler

Der Aufrufer hat den Stapel des IRP nicht ordnungsgemäß kopiert oder in einen Papierkorb verschoben.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x213

Nicht schwerwiegender Fehler

Der Aufrufer hat das status Feld eines IRP geändert, das er nicht versteht.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x214

Nicht schwerwiegender Fehler

Der Aufrufer hat das Informationsfeld einer IRP geändert, die er nicht versteht.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x215

Nicht schwerwiegender Fehler

Eine nicht erfolgreiche nicht STATUS_NOT_SUPPORTED IRP-status für IRP_MJ_PNP wird übergeben. Fehlerhafte PNP-IRPs müssen abgeschlossen sein.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x216

Nicht schwerwiegender Fehler

Die zuvor festgelegte IRP_MJ_PNP status wurde in STATUS_NOT_SUPPORTED konvertiert. Dieser Fehler status für die Verwendung durch das Betriebssystem reserviert ist. Bei Treibern kann ein PnP-IRP mit diesem Wert nicht fehlschlagen.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x217

Nicht schwerwiegender Fehler

Der Treiber hat keine erforderliche IRP verarbeitet. Der Treiber muss den status des IRP aktualisieren, um anzugeben, ob er behandelt wurde oder nicht.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x218

Nicht schwerwiegender Fehler

Der Treiber hat auf ein IRP reagiert, das für andere Geräteobjekte an anderer Stelle im Stapel reserviert ist.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x219

Nicht schwerwiegender Fehler

Ein nicht erfolgreicher nicht STATUS_NOT_SUPPORTED IRP-status für IRP_MJ_POWER wird übergeben. Fehlerhafte POWER IRPs müssen abgeschlossen werden.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x21A

Nicht schwerwiegender Fehler

Die zuvor festgelegte IRP_MJ_POWER status wurde in STATUS_NOT_SUPPORTED konvertiert.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x21B

Nicht schwerwiegender Fehler

Ein Treiber hat eine verdächtige status zurückgegeben. Dies ist wahrscheinlich auf einen nicht initialisierten Variablenfehler im Treiber zurückzuführen.

Absatz 3: IRP-Adresse.

0x21C

Warnung

Der Aufrufer hat den IRP-Stapel kopiert, aber keine Vervollständigungsroutine festgelegt. Dies ist ineffizient: Verwenden Sie stattdessen IoSkipCurrentIrpStackLocation .

Param 2 – Reserviert

Param 3 – Reserviert

0x21D

Schwerwiegender Fehler

Ein IRP-Dispatchhandler hat sich nicht ordnungsgemäß vom Stapel darunter getrennt, nachdem er eine IRP-Entfernung erhalten hat.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Param 4: Adresse des Geräteobjekts.

0x21E

Schwerwiegender Fehler

Ein IRP-Verteilungshandler hat sein Geräteobjekt nicht ordnungsgemäß gelöscht, nachdem er eine IRP-Entfernung erhalten hat.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Param 4: Adresse des Geräteobjekts.

0x21F

Nicht schwerwiegender Fehler

Ein Treiber hat keine Dispatchroutine für eine erforderliche IRP-Hauptfunktion ausgefüllt.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x220

Nicht schwerwiegender Fehler

IRP_MJ_SYSTEM_CONTROL wurde von einer anderen Person als der ProviderId abgeschlossen. Diese IRP hätte entweder früher abgeschlossen oder hätte weitergegeben werden müssen.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Param 4: ProviderId.

0x221

Schwerwiegender Fehler

Ein IRP-Dispatchhandler für eine PDO hat sein Geräteobjekt gelöscht, aber die Hardware wurde in einer Busbeziehungsabfrage nicht als fehlend gemeldet.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Param 4: Adresse des Geräteobjekts.

0x222

Schwerwiegender Fehler

Der IRP-Dispatchhandler eines Busfilters wurde beim Empfang eines Remove-IRP getrennt, wenn das PDO noch aktiv ist. Busfilter müssen in FastIoDetach-Rückrufen sauber.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Param 4: Adresse des Geräteobjekts.

0x223

Schwerwiegender Fehler

Ein IRP-Dispatchhandler für einen Busfilter hat sein Geräteobjekt gelöscht, aber das PDO ist weiterhin vorhanden. Busfilter müssen in FastIoDetach-Rückrufen sauber.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Param 4: Adresse des Geräteobjekts.

0x224

Schwerwiegender Fehler

Ein IRP-Dispatchhandler hat eine status zurückgegeben, die mit dem IRP-Feld IoStatus.Status inkonsistent ist.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Absatz 4: Erwarteter status Code.

0x225

Nicht schwerwiegender Fehler

Ein IRP-Dispatchhandler hat eine status zurückgegeben, die illegal ist (0xFFFFFFFF). Dies ist wahrscheinlich auf eine nicht initialisierte Stapelvariable zurückzuführen. Verwenden Sie zum Debuggen dieses Fehlers den Befehl ln (List Nearest Symbols) mit der angegebenen Adresse.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Absatz 4: Statuscode.

0x226

Schwerwiegender Fehler

Ein IRP-Dispatchhandler wurde zurückgegeben, ohne diese IRP zu übergeben oder abzuschließen, oder jemand hat vergessen, STATUS_PENDING zurückzugeben.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x227

Schwerwiegender Fehler

Eine IRP-Vervollständigungsroutine befindet sich im ausseitigen Code. (Dies ist niemals zulässig.)

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x228

Nicht schwerwiegender Fehler

Die Vervollständigungsroutine eines Treibers hat den IRP nicht als ausstehend markiert, wenn das Feld PendingReturned im an ihn übergebenen IRP festgelegt 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, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x229

Schwerwiegender Fehler

Es wurde eine Abbruchroutine für ein IRP festgelegt, das derzeit von Treibern unter dem Stapel verarbeitet wird, die möglicherweise ihre Abbruchroutine stampfen.

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

0x22A

Nicht schwerwiegender Fehler

Das objekt des physischen Geräts (PDO) hat nicht auf eine erforderliche IRP reagiert.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x22B

Nicht schwerwiegender Fehler

Das physische Geräteobjekt (PDO) hat vergessen, die Gerätebeziehungsliste mit dem PDO für die TargetDeviceRelation-Abfrage auszufüllen.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x22C

Schwerwiegender Fehler

Der Code, der die TargetDeviceRelation-Abfrage implementiert, hat auf dem PDO nicht ObReferenceObject aufgerufen.

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

0x22D

Nicht schwerwiegender Fehler

Der Aufrufer hat eine IRP_MJ_PNP nicht verstanden, anstatt ihn weiterzuleiten.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x22E

Nicht schwerwiegender Fehler

Der Aufrufer hat eine erfolgreiche IRP_MJ_PNP abgeschlossen, anstatt ihn zu übergeben.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x22F

Nicht schwerwiegender Fehler

Der Aufrufer hat eine unangetastete IRP_MJ_PNP abgeschlossen (anstatt den IRP zu übergeben), oder der Nicht-PDO hat den IRP mit dem ungültigen Wert STATUS_NOT_SUPPORTED fehlgeschlagen.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x230

Nicht schwerwiegender Fehler

Der Aufrufer hat eine IRP_MJ_POWER nicht verstanden, anstatt ihn weiterzuleiten.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x231

Schwerwiegender Fehler

Der Aufrufer hat eine erfolgreiche IRP_MJ_POWER abgeschlossen, anstatt ihn zu übergeben.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x232

Nicht schwerwiegender Fehler

Der Aufrufer hat eine unberührte IRP_MJ_POWER abgeschlossen (anstatt den IRP zu übergeben), oder der Nicht-PDO hat den IRP mit dem ungültigen Wert STATUS_NOT_SUPPORTED fehlgeschlagen.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x233

Nicht schwerwiegender Fehler

Das Versionsfeld der Abfragefunktionsstruktur in einem Abfragefunktionen-IRP wurde nicht ordnungsgemäß initialisiert.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x234

Nicht schwerwiegender Fehler

Das Größenfeld der Struktur der Abfragefunktionen in einem Abfragefunktionen-IRP wurde nicht ordnungsgemäß initialisiert.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x235

Nicht schwerwiegender Fehler

Das Adressfeld der Struktur der Abfragefunktionen in einem Abfragefunktionen-IRP wurde nicht ordnungsgemäß mit -1 initialisiert.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x236

Nicht schwerwiegender Fehler

Das Feld UI-Nummer der Struktur der Abfragefunktionen in einem Abfragefunktionen-IRP wurde nicht ordnungsgemäß mit -1 initialisiert.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x237

Schwerwiegender Fehler

Ein Treiber hat eine IRP gesendet, die nur für die Systemverwendung eingeschränkt ist.

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

0x238

Warnung

Der Aufrufer von IoInitializeIrp hat einen IRP übergeben, der IoAllocateIrp zugeordnet wurde. Dies ist illegal, unnötig und wirkt sich negativ auf die Leistung im normalen Gebrauch aus. Wenn diese IRP wiederverwendet wird, lesen Sie IoReuseIrp im Windows Driver Kit.

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

0x239

Warnung

Der Aufrufer von IoCompleteRequest schließt eine IRP ab, die noch nie über einen Anruf an IoCallDriver oder PoCallDriver weitergeleitet wurde. Dies kann ein Fehler sein.

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

0x23A

Schwerwiegender Fehler

Ein Treiber hat eine IRP an einer IRQL weitergeleitet, die für diesen Hauptcode illegal ist.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x23B

Nicht schwerwiegender Fehler

Der Aufrufer hat das status Feld eines IRP geändert, das er nicht versteht.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

In der folgenden Tabelle sind zusätzliche E/A-Überprüfungsfehler aufgeführt, die auftreten können. Diese Fehler treten auf, wenn die erweiterte E/A-Überprüfung aktiviert ist. Weitere Informationen finden Sie unter Erweiterte E/A-Überprüfung.

E/A-Fehlercode Schweregrad Fehlerursache

0x23C

Schwerwiegender Fehler

Ein Treiber hat eine IRP abgeschlossen, ohne die Abbruchroutine im IRP auf NULL festzulegen.

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

0x23D

Nicht schwerwiegender Fehler

Ein Treiber hat STATUS_PENDING zurückgegeben, aber die ausstehende IRP nicht über einen Aufruf von IoMarkIrpPending markiert.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Absatz 4: Statuscode.

0x23E

Nicht schwerwiegender Fehler

Ein Treiber hat eine ausstehende IRP markiert, aber keine STATUS_PENDING zurückgegeben.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Absatz 4: Statuscode.

0x23F

Schwerwiegender Fehler

Ein Treiber hat das DO_POWER_PAGABLE Bit nicht von dem Stapel geerbt, an den er angefügt hat.

Absatz 2 : Reserviert.

Absatz 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, an der der Fehler erkannt wurde.

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

0x241

Schwerwiegender Fehler

Ein Treiber hat sein Geräteobjekt während einer überraschenden Entfernung von IRP getrennt.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Param 4: Adresse des Geräteobjekts.

0x242

Schwerwiegender Fehler

Ein Treiber hat sein Geräteobjekt während einer überraschenden Entfernung von IRP gelöscht.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Param 4: Adresse des Geräteobjekts.

0x243

Schwerwiegender Fehler

Ein Treiber konnte das DO_DEVICE_INITIALIZING-Flag am Ende von AddDevice nicht löschen.

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

Absatz 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 er angefügt ist.

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

0x245

Schwerwiegender Fehler

Ein Treiber hat sowohl die DO_BUFFERED_IO- als auch die DO_DIRECT_IO-Flags festgelegt. Diese Flags schließen sich gegenseitig aus.

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

0x246

Schwerwiegender Fehler

Ein Treiber konnte das DeviceType-Feld nicht aus dem Geräteobjekt kopieren, an das er angefügt ist.

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

0x247

Schwerwiegender Fehler

Absatz 2 : Reserviert.

Absatz 3 : Reserviert.

Ein Treiber hat eine IRP fehlgeschlagen, die rechtlich nicht fehlerhaft sein kann.

0x248

Schwerwiegender Fehler

Ein Treiber hat einer Gerätebeziehungsabfrage ein Geräteobjekt hinzugefügt, das kein PDO ist.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Param 4: Adresse des Geräteobjekts.

0x249

Nicht schwerwiegender Fehler

Ein Treiber hat zwei untergeordnete PDOs aufgelistet, die identische Geräte-IDs zurückgegeben haben.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Param 3: Erste Geräteobjektadresse.

Param 4: Zweite Geräteobjektadresse.

0x24A

Schwerwiegender Fehler

Ein Treiber hat fälscht eine Datei-E/A-Funktion aufgerufen, wobei IRQL nicht gleich PASSIVE_LEVEL ist.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3 : Reserviert.

Absatz 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 den IRP an den zugrunde liegenden Hardwarestapel weitergeleitet.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Param 3: Adresse des Geräteobjekts.

0x24C

Nicht schwerwiegender Fehler

Ein Treiber hat STATUS_PENDING zurückgegeben, aber die ausstehende IRP nicht durch einen Aufruf von IoMarkIrpPending markiert.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Absatz 4: Statuscode.

0x24D

Schwerwiegender Fehler

Ein Treiber hat ein ungültiges Geräteobjekt an eine Funktion übergeben, die ein PDO erfordert.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Param 4: Adresse des Geräteobjekts.

0x300

Nicht schwerwiegender Fehler

Ein Treiber hat eine verdächtige status zurückgegeben. Dies ist wahrscheinlich auf einen nicht initialisierten Variablenfehler im Treiber zurückzuführen.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Absatz 4: Verdächtiger status Code.

0x301

Nicht schwerwiegender Fehler

Ein Treiber hat eine IRP bei IRQL > DISPATCH_LEVEL weitergeleitet.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Param 4: Falscher IRQL-Wert

0x302

Nicht schwerwiegender Fehler

Ein Treiber hat eine IRP am IRQL > = APC_LEVEL weitergeleitet.

Der E/A-Manager muss eine APC in die Warteschlange stellen, um diese Anforderung auszuführen. Der APC kann nicht ausgeführt werden, da sich der Aufrufer bereits auf APC-Ebene befindet, sodass der Aufrufer wahrscheinlich einen Deadlock aufweist.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Absatz 4: Falscher IRQL-Wert.

0x306

Nicht schwerwiegender Fehler

Der Treiber führt eine IRP_MJ_PNP (Haupt) und IRP_MN_REMOVE_DEVICE (Nebenanforderung) mit einem Fehler status Code aus.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x307

Nicht schwerwiegender Fehler

Der Treiber hat eine E/A-Anforderung mit einem Ereignis ausgegeben, das bereits signalisiert wurde und eine STATUS_PENDING Antwort empfangen hat. Dies kann zu einer Entladung führen, bevor die E/A abgeschlossen ist.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x310

Nicht schwerwiegender Fehler

Der Treiber initialisiert ein noch verwendetes IRP neu.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x311

Nicht schwerwiegender Fehler

Der Treiber initialisiert ein IRP neu, das mit IoMakeAssociatedIrp, IoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest, IoBuildDeviceIoControlRequest erstellt wurde.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

0x312

Nicht schwerwiegender Fehler

Der Aufrufer hat das Feld IRP-Statusinformationen mit einem Wert angegeben, der größer als der Ausgabeabschnitt des Systempuffers ist.

Param 2: Die Adresse im Treibercode, an der der Fehler erkannt wurde.

Absatz 3: IRP-Adresse.

Ursache

Eine Beschreibung der Ursache finden Sie in der Beschreibung der einzelnen Codes im Abschnitt Parameter.

Lösung

Diese Fehlerüberprüfung kann nur auftreten, wenn driver verifier angewiesen wurde, einen oder mehrere Treiber zu überwachen. Wenn Sie die Treiberüberprüfung nicht verwenden möchten, sollten Sie ihn deaktivieren. Weitere Informationen finden Sie unter "How to control Driver Verifier" in Driver Verifier. Sie können erwägen, den Treiber zu aktualisieren oder zu entfernen, der dieses Problem verursacht hat.

Wenn Sie der Treiberentwickler sind, verwenden Sie die Informationen, die Sie durch diese Fehlerüberprüfung erhalten haben, um die Fehler in Ihrem Code zu beheben.

Ausführliche Informationen zur Treiberüberprüfung finden Sie unter Driver Verifier.