The problem drive is the WD Black 2TB HDD. We can see this from the dumps, which are all identical. The 0x9F (DRIVER_POWER_STATE_FAILURE) indicates that a hardware device took too long to complete a power transition...
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: ffffab01b1c25050, Physical Device Object of the stack
Arg3: ffffbd80b7997178, nt!TRIAGE_9F_POWER on Win7 and higher, otherwise the Functional Device Object of the stack
Arg4: ffffab01b5cce9f0, The blocked IRP
The IRP, whose address is in argument 4 and which manages the power transition, shows that it's a disk device...
Code:
15: kd> !irp ffffab01b5cce9f0
Irp is active with 6 stacks 3 is current (= 0xffffab01b5cceb50)
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
>[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
0 e1 ffffab01b1c25050 00000000 fffff804262c8510-ffffab01b5c6e5c0 Success Error Cancel pending
\Driver\storahci CLASSPNP!ClasspPowerUpCompletion
Args: 00000000 00000001 00000001 00000000
[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
0 e1 ffffab01b5c6e080 00000000 fffff8042519ec60-00000000 Success Error Cancel pending
\Driver\disk partmgr!PmPowerCompletion
Args: 00000000 00000001 00000001 00000000
[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
0 e1 ffffab01b5aca8d0 00000000 fffff80422cb5450-ffffab01b5c66208 Success Error Cancel pending
\Driver\partmgr nt!PopRequestCompletion
Args: 00000000 00000001 00000001 00000000
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-ffffab01b5c66208
Args: 00000000 00000000 00000000 00000000
Note that the Windows drivers storachi.sys, disk.sys and partmgr.sys are all on the IRP queue and all are trying to change the power state (IRP_MN_SET_POWER). It's the driver at the bottom (partmgr.sys) that's holding everything up.
Argument 2 in the bugcheck is the address of the device object, which identifies the Windows management structure for the device having power transition problems...
Code:
15: kd> !devobj ffffab01b1c25050
Device object (ffffab01b1c25050) is for:
Cannot read info offset from nt!ObpInfoMaskToOffset
\Driver\storahci DriverObject ffffab01b1be28a0
Current Irp 00000000 RefCount 0 Type 00000007 Flags 00001050
SecurityDescriptor ffffc10c01416c60 DevExt ffffab01b1c251a0 DevObjExt ffffab01b1c263a0 DevNode ffffab01b1c48c20
ExtensionFlags (0000000000)
Characteristics (0x00000180) FILE_AUTOGENERATED_DEVICE_NAME, FILE_DEVICE_SECURE_OPEN
AttachedDevice (Upper) ffffab01b5c6e080 \Driver\disk
Device queue is not busy.
The key bit of information in there that's useful for us is the device node address (DevNode), this describes the actual physical device...
Code:
15: kd> !devnode ffffab01b1c48c20
DevNode 0xffffab01b1c48c20 for PDO 0xffffab01b1c25050
Parent 0xffffab01b19bba20 Sibling 0000000000 Child 0000000000
InstancePath is "SCSI\Disk&Ven_WDC&Prod_WD2003FZEX-00SRL\7&3611b6d6&0&010000"
ServiceName is "disk"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
StateHistory[12] = DeviceNodeEnumerateCompletion (0x30f)
StateHistory[11] = DeviceNodeEnumeratePending (0x30e)
StateHistory[10] = DeviceNodeStarted (0x30a)
StateHistory[09] = DeviceNodeEnumerateCompletion (0x30f)
StateHistory[08] = DeviceNodeEnumeratePending (0x30e)
StateHistory[07] = DeviceNodeStarted (0x30a)
StateHistory[06] = DeviceNodeStartPostWork (0x309)
StateHistory[05] = DeviceNodeStartCompletion (0x308)
StateHistory[04] = DeviceNodeStartPending (0x307)
StateHistory[03] = DeviceNodeResourcesAssigned (0x306)
StateHistory[02] = DeviceNodeDriversAdded (0x305)
StateHistory[01] = DeviceNodeInitialized (0x304)
StateHistory[00] = DeviceNodeUninitialized (0x301)
StateHistory[19] = Unknown State (0x0)
StateHistory[18] = Unknown State (0x0)
StateHistory[17] = Unknown State (0x0)
StateHistory[16] = Unknown State (0x0)
StateHistory[15] = Unknown State (0x0)
StateHistory[14] = Unknown State (0x0)
StateHistory[13] = Unknown State (0x0)
Flags (0x24000130) DNF_ENUMERATED, DNF_IDS_QUERIED,
DNF_NO_RESOURCE_REQUIRED, DNF_NO_LOWER_DEVICE_FILTERS,
DNF_NO_UPPER_DEVICE_FILTERS
CapabilityFlags (0x00402180) SilentInstall, RawDeviceOK,
WakeFromD3
Unknown flags 0x00400000
The 'InstancePath' there shows the actual device - WD2003FZEX-00SRL - if you look that up it's a WD Black 2TB HDD. Note also from the 'CapabilityFlags' that it supports the D3 (low power state), so it should be able to handle transitioning from D3 to D0 (full power).
I don't think that this is necessarily a problem with the disk surface or data, it's a disk controller problem (because it's failing a power transition). One workaround would be to change the hard disk power off time in Power & Sleep Settings to 0, so that the drives never power down.
If you're experiencing many of these BSODs when gaming then perhaps it's a power issue? What PSU do you have? I would also check that the SATA power cables are fully home at both ends. It might also be worth trying a different HDD in there....