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.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für