This particular bugcheck (0x9F with argument 1 set to 0x3) is quite easy to debug when you know how, so for the benefit of others following this thread, here's how...
This bugcheck happens because a device failed to complete a power transition (from low to high power, or vice-versa) in a reasonable time. The bugcheck data gives us two important addresses; in argument 4 we have the address of the IRP (interrupt request packet) that is managing the power transition, and in argument 2 we have the address of the device object that Windows uses to manage the device having the problem...
Code:
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: ffff938887bc9630, Physical Device Object of the stack
Arg3: ffff92036bc47ba0, nt!TRIAGE_9F_POWER on Win7 and higher, otherwise the Functional Device Object of the stack
Arg4: ffff93888c063620, The blocked IRP
Examining the IRP we see the following...
Code:
2: kd> !irp ffff93888c063620
Irp is active with 6 stacks 4 is current (= 0xffff93888c0637c8)
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
>[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
0 e1 ffff938887bc9630 00000000 fffff807314afd70-ffff92036bc1f778 Success Error Cancel pending
\Driver\pci dxgkrnl!DpiFdoPowerCompletionRoutine
Args: 00000000 00000001 00000001 00000000
[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
0 e1 ffff938889aa7030 00000000 fffff8071a37ac60-ffff93888dd33728 Success Error Cancel pending
\Driver\nvlddmkm nt!PopRequestCompletion
Args: 00000000 00000001 00000001 00000000
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-ffff93888dd33728
Args: 00000000 00000000 00000000 00000000
At the bottom there are the drivers that are holding on to the IRP because the power transition isn't happening properly. We see pci.sys, the Windows root PCIe driver (which is not at fault because it's a Microsoft driver) and below that we see nvlddmkm.sys, the Nvidia graphics driver which is the real cause of the problem (or the graphics card itself).
We can get more information by examining the device object...
Code:
2: kd> !devobj ffff938887bc9630
Device object (ffff938887bc9630) is for:
Cannot read info offset from nt!ObpInfoMaskToOffset
\Driver\pci DriverObject ffff938885be6960
Current Irp 00000000 RefCount 0 Type 00000023 Flags 00001040
SecurityDescriptor ffffe101681987e0 DevExt ffff938887bc9780 DevObjExt ffff938887bc9ec8 DevNode ffff938887bcb860
ExtensionFlags (0000000000)
Characteristics (0x00000100) FILE_DEVICE_SECURE_OPEN
AttachedDevice (Upper) ffff9388874f26a0 \Driver\ACPI
Device queue is not busy.
The most useful bit of information in there for us is the address of the device node (the DevNode). This describes the actual device itself...
Code:
2: kd> !devnode ffff938887bcb860
DevNode 0xffff938887bcb860 for PDO 0xffff938887bc9630
Parent 0xffff938887bf6ca0 Sibling 0000000000 Child 0000000000
InstancePath is "PCI\VEN_10DE&DEV_1C20&SUBSYS_11D71462&REV_A1\4&343593a9&0&0008"
ServiceName is "nvlddmkm"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[18] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[17] = DeviceNodeEnumeratePending (0x30c)
StateHistory[16] = DeviceNodeStarted (0x308)
StateHistory[15] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[14] = DeviceNodeEnumeratePending (0x30c)
StateHistory[13] = DeviceNodeStarted (0x308)
StateHistory[12] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[11] = DeviceNodeEnumeratePending (0x30c)
StateHistory[10] = DeviceNodeStarted (0x308)
StateHistory[09] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[08] = DeviceNodeEnumeratePending (0x30c)
StateHistory[07] = DeviceNodeStarted (0x308)
StateHistory[06] = DeviceNodeStartPostWork (0x307)
StateHistory[05] = DeviceNodeStartCompletion (0x306)
StateHistory[04] = DeviceNodeStartPending (0x305)
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
StateHistory[02] = DeviceNodeDriversAdded (0x303)
StateHistory[01] = DeviceNodeInitialized (0x302)
StateHistory[00] = DeviceNodeUninitialized (0x301)
StateHistory[19] = Unknown State (0x0)
Flags (0x6c0000f0) DNF_ENUMERATED, DNF_IDS_QUERIED,
DNF_HAS_BOOT_CONFIG, DNF_BOOT_CONFIG_RESERVED,
DNF_NO_LOWER_DEVICE_FILTERS, DNF_NO_LOWER_CLASS_FILTERS,
DNF_NO_UPPER_DEVICE_FILTERS, DNF_NO_UPPER_CLASS_FILTERS
CapabilityFlags (0x00002001) DeviceD1, WakeFromD3
In the InstancePath above we can see the VEN & DEV identifiers for the actual device. If you
look up VEN_10DE&DEV_1C20 you'll see it's your GTX 1060 (mobile). You can also see from the CapabilityFlags at the bottom that the device supports power state D1 and is capable of waking from D3 - these are the low power states, D0 is the fully on state.
Either the graphics card failed to power up properly or the driver failed in running the power up process. The version of the nvlddmkm.sys that you have installed is not current...
Code:
2: kd> lmvm nvlddmkm
Browse full module list
start end module name
fffff807`45770000 fffff807`490c3000 nvlddmkm T (no symbols)
Loaded symbol image file: nvlddmkm.sys
Image path: \SystemRoot\System32\DriverStore\FileRepository\nvmiig.inf_amd64_3583fda5ef1eb1bb\nvlddmkm.sys
Image name: nvlddmkm.sys
Browse all global symbols functions data
Timestamp: Sat Jun 24 00:22:34 2023 (64960D1A)
CheckSum: 0384EE9C
ImageSize: 03953000
Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4
Information from resource tables:
The
Nvidia driver website has a later driver (546.33) dated 12th December 2023. You might want to try installing that version. Be sure to do a clean install of the driver - via the Custom (Advanced) option.
That said, laptops often have their graphics drivers customised for power saving, operational, and/or performance reasons. Because the generic drivers from Intel (for the iGPU) and Nvidia (for the dGPU) do not contain these customisations they often don't work properly and/or cause BSODs. I would suggest you download the latest graphics drivers from the MSI website for your laptop model and use those in place of the generic drivers. They are guaranteed to be compatible with your laptop, so if it BSODs with those drivers then it's a graphics card issue.