Skip to content

Commit 78829b9

Browse files
Fix issues with missing samsung nvme data. (#1818)
Reorder read out order in the same way as CrystalDiskInfo
1 parent 8036ea2 commit 78829b9

2 files changed

Lines changed: 11 additions & 13 deletions

File tree

LibreHardwareMonitorLib/Hardware/Storage/NVMeSamsung.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ public bool IdentifyController(SafeHandle hDevice, out Kernel32.NVME_IDENTIFY_CO
3636
buffers.Spt.TargetId = 0;
3737
buffers.Spt.Lun = 0;
3838
buffers.Spt.SenseInfoLength = 24;
39-
buffers.Spt.DataIn = 1;
4039
buffers.Spt.DataTransferLength = (uint)buffers.DataBuf.Length;
4140
buffers.Spt.TimeOutValue = 2;
4241
buffers.Spt.DataBufferOffset = Marshal.OffsetOf(typeof(Kernel32.SCSI_PASS_THROUGH_WITH_BUFFERS), nameof(Kernel32.SCSI_PASS_THROUGH_WITH_BUFFERS.DataBuf));
@@ -67,7 +66,6 @@ public bool IdentifyController(SafeHandle hDevice, out Kernel32.NVME_IDENTIFY_CO
6766
buffers.Spt.Lun = 0;
6867
buffers.Spt.SenseInfoLength = 24;
6968
buffers.Spt.DataTransferLength = (uint)buffers.DataBuf.Length;
70-
buffers.Spt.DataIn = 1;
7169
buffers.Spt.TimeOutValue = 2;
7270
buffers.Spt.DataBufferOffset = Marshal.OffsetOf<Kernel32.SCSI_PASS_THROUGH_WITH_BUFFERS>(nameof(Kernel32.SCSI_PASS_THROUGH_WITH_BUFFERS.DataBuf));
7371
buffers.Spt.SenseInfoOffset = (uint)Marshal.OffsetOf<Kernel32.SCSI_PASS_THROUGH_WITH_BUFFERS>(nameof(Kernel32.SCSI_PASS_THROUGH_WITH_BUFFERS.SenseBuf));

LibreHardwareMonitorLib/Hardware/Storage/NVMeSmart.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,16 @@ internal NVMeSmart(StorageInfo storageInfo)
2121
NVMeDrive = null;
2222
string name = storageInfo.Name;
2323

24+
// Test Windows generic driver protocol.
25+
if (NVMeDrive == null)
26+
{
27+
_handle = NVMeWindows.IdentifyDevice(storageInfo);
28+
if (_handle != null)
29+
{
30+
NVMeDrive = new NVMeWindows();
31+
}
32+
}
33+
2434
// Test Samsung protocol.
2535
if (NVMeDrive == null && name.IndexOf("Samsung", StringComparison.OrdinalIgnoreCase) > -1)
2636
{
@@ -54,16 +64,6 @@ internal NVMeSmart(StorageInfo storageInfo)
5464
NVMeDrive = new NVMeIntelRst();
5565
}
5666
}
57-
58-
// Test Windows generic driver protocol.
59-
if (NVMeDrive == null)
60-
{
61-
_handle = NVMeWindows.IdentifyDevice(storageInfo);
62-
if (_handle != null)
63-
{
64-
NVMeDrive = new NVMeWindows();
65-
}
66-
}
6767
}
6868

6969
public bool IsValid
@@ -187,4 +187,4 @@ public NVMeHealthInfo(Kernel32.NVME_HEALTH_INFO_LOG log)
187187
TemperatureSensors[i] = KelvinToCelsius(log.TemperatureSensor[i]);
188188
}
189189
}
190-
}
190+
}

0 commit comments

Comments
 (0)