Fehlerüberprüfung 0x9F DRIVER_POWER_STATE_FAILURE - Windows drivers (2024)

  • Artikel

Die DRIVER_POWER_STATE_FAILURE-Fehlerüberprüfung weist den Wert 0x0000009F auf. Diese Fehlerprüfung gibt an, dass sich der Treiber in einem inkonsistenten oder ungültigen Energiezustand befindet.

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_POWER_STATE_FAILURE-Parameter

Parameter 1 gibt den Typ des Verstoßes an.

Parameter 1Parameter2Parameter 3Parameter 4Ursache
0x1Das GeräteobjektReserviertReserviertDas freigegebene Geräteobjekt verfügt noch über eine ausstehende Energieanforderung, die noch nicht abgeschlossen wurde.
0x2Das Geräteobjekt des Zielgeräts, sofern verfügbarDas GeräteobjektDas Treiberobjekt, sofern verfügbarDas Geräteobjekt hat das E/A-Anforderungspaket (IRP) für die Systemstromzustandsanforderung abgeschlossen, aber poStartNextPowerIrp nicht aufgerufen.
0x3Das objekt des physischen Geräts (PDO) des Stapelsnt!_TRIAGE_9F_POWER.Die blockierte IRPEin Geräteobjekt blockiert eine IRP zu lange.
0x4Timeoutwert in Sekunden.Der Thread, der derzeit die Plug-and-Play-Sperre (PnP) hält.Nt! TRIAGE_9F_PNP.Das Timeout des Energiezustandsübergangs wurde auf die Synchronisierung mit dem PnP-Subsystem gewartet.
0x5Physisches Geräteobjekt des StapelsDas POP_FX_DEVICE-ObjektReserviert: 0Das Gerät konnte einen gerichteten Stromübergang nicht innerhalb der erforderlichen Zeit durchführen.
0x6Das POP_FX_DEVICE-ObjektGibt an, ob es sich um einen Abschluss mit gerichtetem Herunterschalten (1) oder Einschalten (0) handelt.Reserviert: 0Das Gerät hat seinen Rückruf für den gerichteten Energieübergang nicht erfolgreich abgeschlossen.
0x500ReserviertDas Geräteobjekt des Zielgeräts, falls verfügbarGeräteobjektDas Geräteobjekt hat die IRP für die Systemstromzustandsanforderung abgeschlossen, aber poStartNextPowerIrp nicht aufgerufen.

Ursache

Eine Beschreibung der möglichen Ursachen finden Sie in der Beschreibung der einzelnen Codes im Abschnitt Parameter. Häufige Ursachen sind:

  • Freigegebenes Geräteobjekt mit ausstehender, nicht abgeschlossener Energieanforderung
  • Timeout beim Übergang des Energiezustands
  • Geräteobjekt, das eine IRP blockiert
  • Abgeschlossenes IRP, aber kein Aufruf von PoStartNextPowerIrp

Lösung

Um die spezifische Ursache zu ermitteln und eine Codekorrektur zu erstellen, sind Programmiererfahrung und Zugriff auf den Quellcode des fehlerhaften Moduls erforderlich.

Debugfehlerprüfung 0x9F, wenn Parameter 1 gleich 0x3

  • Verwenden Sie in einem Kerneldebugger den Befehl !analyze -v , um die erste Fehlerprüfungsanalyse durchzuführen. Die ausführliche Analyse zeigt die Adresse des nt! TRIAGE_9F_POWER Struktur in Arg3.
kd>!analyze -v******************************************************************************** ** Bugcheck Analysis ** ******************************************************************************** DRIVER_POWER_STATE_FAILURE (9f) A driver has failed to complete a power IRP within a specific time. Arguments: Arg1: 0000000000000003, A device object has been blocking an Irp for too long a time Arg2: fffffa8007b13440, Physical Device Object of the stack Arg3: fffff8000386c3d8, nt!_TRIAGE_9F_POWER on Win7 and higher, otherwise the Functional Device Object of the stack Arg4: fffffa800ab61bd0, The blocked IRP

Wenn ein Treiber identifiziert werden kann, der für den Fehler verantwortlich ist, wird sein Name auf dem Bluescreen gedruckt und im Speicher am Speicherort (PUNICODE_STRING) KiBugCheckDriver gespeichert. Sie können dx (Debuggerobjektmodellausdruck anzeigen) verwenden, einen Debuggerbefehl, um folgendes anzuzeigen: dx KiBugCheckDriver.

Der nt! TRIAGE_9F_POWER-Struktur bietet zusätzliche Informationen zur Fehlerüberprüfung, die Ihnen bei der Ermittlung der Ursache dieser Fehlerüberprüfung helfen können. Die -Struktur kann eine Liste aller ausstehenden Power IRPs, eine Liste aller Power IRP-Arbeitsthreads und einen Zeiger auf die verzögerte Systemworkerwarteschlange bereitstellen.

  • Verwenden Sie den Befehl dt (Anzeigetyp), und geben Sie nt! TRIAGE_9F_POWER Struktur mithilfe der Adresse aus Arg3.
 0: kd> dt nt!_TRIAGE_9F_POWER fffff8000386c3d8 +0x000 Signature : 0x8000 +0x002 Revision : 1 +0x008 IrpList : 0xfffff800`01c78bd0 _LIST_ENTRY [ 0xfffffa80`09f43620 - 0xfffffa80`0ad00170 ] +0x010 ThreadList : 0xfffff800`01c78520 _LIST_ENTRY [ 0xfffff880`009cdb98 - 0xfffff880`181f2b98 ] +0x018 DelayedWorkQueue : 0xfffff800`01c6d2d8 _TRIAGE_EX_WORK_QUEUE

Der Befehl dt (Anzeigetyp) zeigt die Struktur an. Sie können verschiedene Debuggerbefehle verwenden, um den LIST_ENTRY Feldern zu folgen, um die Liste der ausstehenden IRPs und die Power-IRP-Workerthreads zu untersuchen.

  • Verwenden Sie den Befehl !irp , um den blockierten IRP zu untersuchen. Die Adresse dieses IRP befindet sich in Arg4.
 0: kd> !irp fffffa800ab61bd0 Irp is active with 7 stacks 6 is current (= 0xfffffa800ab61e08) No Mdl: No System Buffer: Thread 00000000: Irp stack trace. cmd flg cl Device File Completion-Context [N/A(0), N/A(0)] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [N/A(0), N/A(0)] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [N/A(0), N/A(0)] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [N/A(0), N/A(0)] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [N/A(0), N/A(0)] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 >[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)] 0 e1 fffffa800783f060 00000000 00000000-00000000 pending \Driver\HidUsb Args: 00016600 00000001 00000004 00000006 [N/A(0), N/A(0)] 0 0 00000000 00000000 00000000-fffffa800ad00170 Args: 00000000 00000000 00000000 00000000
  • Verwenden Sie den Befehl !devstack mit der PDO-Adresse in Arg2, um Informationen anzuzeigen, die dem fehlerhaften Treiber zugeordnet sind.
 0: kd> !devstack fffffa8007b13440 !DevObj !DrvObj !DevExt ObjectName fffffa800783f060 \Driver\HidUsb fffffa800783f1b0 InfoMask field not found for _OBJECT_HEADER at fffffa800783f030 > fffffa8007b13440 \Driver\usbhub fffffa8007b13590 Cannot read info offset from nt!ObpInfoMaskToOffset !DevNode fffffa8007ac8a00 : DeviceInst is "USB\VID_04D8&PID_0033\5&46fa7b7&0&1" ServiceName is "HidUsb"
  • Verwenden Sie den Befehl !poaction, um die Threads anzuzeigen, die die Energievorgänge und alle zugeordneten Power IRPs verarbeiten.
 3: kd> !poaction PopAction: fffff801332f3fe0 State..........: 0 - Idle Updates........: 0 Action.........: None Lightest State.: Unspecified Flags..........: 10000003 QueryApps|UIAllowed Irp minor......: ?? System State...: Unspecified Hiber Context..: 0000000000000000 Allocated power irps (PopIrpList - fffff801332f44f0) IRP: ffffe0001d53d8f0 (wait-wake/S0), PDO: ffffe00013cae060 IRP: ffffe0001049a5d0 (wait-wake/S0), PDO: ffffe00012d42050 IRP: ffffe00013d07420 (set/D3,), PDO: ffffe00012daf840, CURRENT: ffffe00012dd5040 IRP: ffffe0001e5ac5d0 (wait-wake/S0), PDO: ffffe00013d33060 IRP: ffffe0001ed3e420 (wait-wake/S0), PDO: ffffe00013c96060 IRP: ffffe000195fe010 (wait-wake/S0), PDO: ffffe00012d32050 Irp worker threads (PopIrpThreadList - fffff801332f3100) THREAD: ffffe0000ef5d040 (static) THREAD: ffffe0000ef5e040 (static), IRP: ffffe00013d07420, DEVICE: ffffe00012dd5040 PopAction: fffff801332f3fe0 State..........: 0 - Idle Updates........: 0 Action.........: None Lightest State.: Unspecified Flags..........: 10000003 QueryApps|UIAllowed Irp minor......: ?? System State...: Unspecified Hiber Context..: 0000000000000000 Allocated power irps (PopIrpList - fffff801332f44f0) IRP: ffffe0001d53d8f0 (wait-wake/S0), PDO: ffffe00013cae060 IRP: ffffe0001049a5d0 (wait-wake/S0), PDO: ffffe00012d42050 IRP: ffffe00013d07420 (set/D3,), PDO: ffffe00012daf840, CURRENT: ffffe00012dd5040 IRP: ffffe0001e5ac5d0 (wait-wake/S0), PDO: ffffe00013d33060 IRP: ffffe0001ed3e420 (wait-wake/S0), PDO: ffffe00013c96060 IRP: ffffe000195fe010 (wait-wake/S0), PDO: ffffe00012d32050 Irp worker threads (PopIrpThreadList - fffff801332f3100) THREAD: ffffe0000ef5d040 (static) THREAD: ffffe0000ef5e040 (static), IRP: ffffe00013d07420, DEVICE: ffffe00012dd5040
  • Wenn Sie mit einem KMDF-Treiber arbeiten, verwenden Sie die Windows-Treiberframeworkerweiterungen (!wdfkd), um zusätzliche Informationen zu sammeln.

    Verwenden Sie !wdfkd.wdflogdump<Ihren Treibernamen>, um zu ermitteln, ob KMDF auf ausstehende Anforderungen wartet, bis Sie ACK erhalten.

    Verwenden Sie !wdfkd.wdfdevicequeues<Ihres WDFDEVICE> , um alle ausstehenden Anforderungen und ihren Zustand zu untersuchen.

  • Verwenden Sie die !stacks-Erweiterung , um den Status jedes Threads zu untersuchen und nach einem Thread zu suchen, der den Energiezustandsübergang möglicherweise blockiert.

  • Um die Ursache des Fehlers zu ermitteln, stellen Sie sich die folgenden Fragen:

    • Welche Merkmale hat der Treiber für physische Geräteobjekte (PDO) (Arg2)?
    • Können Sie den blockierten Thread finden? Worin besteht der Thread, wenn Sie den Thread mit dem Befehl !thread debugger untersuchen?
    • Gibt es E/A, die dem Thread zugeordnet sind, der ihn blockiert? Welche Symbole befinden sich auf dem Stapel?
    • Was fällt Ihnen auf, wenn Sie die blockierte Leistungs-IRP untersuchen?
    • Was ist der PnP-Nebenfunktionscode der Leistungs-IRP?

Debugfehlerprüfung 0x9F, wenn Parameter 1 gleich 0x4

  • Verwenden Sie in einem Kerneldebugger den Befehl !analyze -v , um die erste Fehlerprüfungsanalyse durchzuführen. Die ausführliche Analyse zeigt die Adresse des nt! TRIAGE_9F_PNP Struktur, die sich in Parameter 4 (arg4) befindet.
 kd> !analyze -v ******************************************************************************* * * * Bugcheck Analysis * * * ******************************************************************************* DRIVER_POWER_STATE_FAILURE (9f) A driver has failed to complete a power IRP within a specific time (usually 10 minutes). Arguments: Arg1: 00000004, The power transition timed out waiting to synchronize with the Pnp subsystem. Arg2: 00000258, Timeout in seconds. Arg3: 84e01a70, The thread currently holding on to the Pnp lock. Arg4: 82931b24, nt!TRIAGE_9F_PNP on Win7

Der nt! TRIAGE_9F_PNP-Struktur bietet zusätzliche Informationen zur Fehlerüberprüfung, die Ihnen bei der Ermittlung der Fehlerursache helfen können. Der nt! TRIAGE_9F_PNP-Struktur stellt einen Zeiger auf eine Struktur bereit, die die Liste der verteilten (aber nicht abgeschlossenen) PnP-IRPs enthält, und stellt einen Zeiger auf die verzögerte Systemworkerwarteschlange bereit.

  • Verwenden Sie den Befehl dt (Anzeigetyp), und geben Sie nt ! TRIAGE_9F_PNP Struktur und die Adresse, die Sie in Arg4 gefunden haben.
 kd> dt nt!TRIAGE_9F_PNP 82931b24 +0x000 Signature : 0x8001 +0x002 Revision : 1 +0x004 CompletionQueue : 0x82970e20 _TRIAGE_PNP_DEVICE_COMPLETION_QUEUE +0x008 DelayedWorkQueue : 0x829455bc _TRIAGE_EX_WORK_QUEUE

Der Befehl dt (Anzeigetyp) zeigt die Struktur an. Sie können Debuggerbefehle verwenden, um den LIST_ENTRY Feldern zu folgen, um die Liste der ausstehenden PnP-IRPs zu untersuchen.

Um die Ursache des Fehlers zu ermitteln, stellen Sie sich die folgenden Fragen:

  • Ist dem Thread ein IRP zugeordnet?

  • Gibt es E/A in der CompletionQueue?

  • Welche Symbole befinden sich auf dem Stapel?

  • Weitere Informationen finden Sie unter Parameter 0x3.

Hinweise

Wenn Sie dieses Problem nicht mithilfe der oben beschriebenen Techniken debuggen können, können Sie einige grundlegende Problembehandlungstechniken verwenden.

  • Wenn kürzlich neue Gerätetreiber oder Systemdienste hinzugefügt wurden, versuchen Sie, diese zu entfernen oder zu aktualisieren. Versuchen Sie, zu ermitteln, was sich im System geändert hat, wodurch der neue Fehlerüberprüfungscode angezeigt wurde.

  • Suchen Sie in Geräte-Manager, um zu sehen, ob Geräte mit dem Ausrufezeichen (!) gekennzeichnet sind. Überprüfen Sie das in den Treibereigenschaften angezeigte Ereignisprotokoll auf jeden fehlerhaften Treiber. Versuchen Sie, den entsprechenden Treiber zu aktualisieren.

  • Überprüfen Sie das Systemprotokoll in Ereignisanzeige auf zusätzliche Fehlermeldungen, die möglicherweise helfen, das Gerät oder den Treiber zu ermitteln, das den Fehler verursacht. Weitere Informationen finden Sie unter Öffnen Ereignisanzeige. Suchen Sie im Systemprotokoll nach kritischen Fehlern, die in demselben Zeitfenster wie der Bluescreen aufgetreten sind.

  • Um zu versuchen, die Ursache zu isolieren, deaktivieren Sie den Stromsparmodus vorübergehend mithilfe der Systemsteuerung und der Energieoptionen. Einige Treiberprobleme stehen im Zusammenhang mit den verschiedenen Zuständen des Ruhezustands des Systems und der Unterbrechung und Wiederaufnahme der Energieversorgung.

  • Wenn Sie dem System kürzlich Hardware hinzugefügt haben, versuchen Sie, diese zu entfernen oder zu ersetzen. Oder erkundigen Sie sich beim Hersteller, ob Patches verfügbar sind.

  • Sie können versuchen, die vom Systemhersteller bereitgestellte Hardwarediagnose auszuführen.

  • Wenden Sie sich an den Hersteller, ob ein aktualisiertes ACPI/BIOS-System oder eine andere Firmware verfügbar ist.

Siehe auch

Absturzabbildanalyse mithilfe der Windows-Debugger (WinDbg)

Analysieren einer Kernel-Mode-Dumpdatei mit WinDbg

Bug Check Code Reference (Referenz zu Fehlerüberprüfungscodes)

Fehlerüberprüfung 0x9F DRIVER_POWER_STATE_FAILURE - Windows drivers (2024)
Top Articles
30 Top Marketing Agencies (Digital, Online, Web) in 2022
Wielopierścieniowe węglowodory aromatyczne (WWA). Czym są i czy należy się ich obawiać?
Houses For Sale 180 000
Demon Souls Moonshadestone
Barber Gym Quantico Hours
Faketoks Twitter
Charli D'Amelio: Wie die junge Amerikannerin TikTok-Sensation wurde
Jikatabi Thothub
Rick Lee Oaklawn Park Picks Today
Jinx Manga Vyvy
Cookie Clicker The Advanced Method
Rainbird Wiring Diagram
Western Gold Gateway
Hotleak.vip
NFL Week 1 coverage map: Full TV schedule for CBS, Fox regional broadcasts | Sporting News
Craigslis Nc
Chula Vista Tv Listings
Kohls Locations Long Island
Walmart Com Careers Jobs
Autotrader Ford Ranger
M Life Insider
Wok Uberinternal
Imperious Skyrim
636-730-9503
Runnings Milwaukee Tool Sale
Bfri Forum
Numerous people shot in Kentucky near Interstate 75, officials say | CNN
Gulfport Senior Center Calendar
Eddie Messel Leaving 1011
Eros Cherry Hill
Po Box 182223 Chattanooga Tn 37422 7223
Stuckey Furniture
Sams Gurnee Gas Price
San Bernardino Pick A Part Inventory
Creator League Standings
Doculivery Trinity Health
Nenas Spa San Salvador
Davis Fire Friday live updates: Community meeting set for 7 p.m. with Lombardo
Ludwig Nutsac
Ucf Net Price Calculator
Krunker.io . Online Games . BrightestGames.com
https://www.hulu.com/series/amish-haunting-96e9c592-7006-47d6-bb8f-265e9ef174ec
Hercules 2014 Full Movie Youtube
4225 Eckersley Way Roseville Ca
How Old Is Ted Williams Fox News Contributor
Mcoc Black Panther
How Much Does Costco Gas Cost Today? Snapshot of Prices Across the U.S. | CostContessa
Barbie: A Touch of Magic
Crandon Skyward
Lifetime Benefits Login
Swim University Chemical Calculator
Centurylink Outage Map Mesa Az
Latest Posts
Article information

Author: Nathanael Baumbach

Last Updated:

Views: 5828

Rating: 4.4 / 5 (75 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Nathanael Baumbach

Birthday: 1998-12-02

Address: Apt. 829 751 Glover View, West Orlando, IN 22436

Phone: +901025288581

Job: Internal IT Coordinator

Hobby: Gunsmithing, Motor sports, Flying, Skiing, Hooping, Lego building, Ice skating

Introduction: My name is Nathanael Baumbach, I am a fantastic, nice, victorious, brave, healthy, cute, glorious person who loves writing and wants to share my knowledge and understanding with you.