Further restricted the identification for Indilinx SSDs to prevent Maxtor HDDs to be identified as Indilinx SSD.

This commit is contained in:
Michael Möller
2012-01-02 21:17:21 +00:00
parent e500810713
commit 67d04939bb
3 changed files with 65 additions and 26 deletions
+37 -1
View File
@@ -205,7 +205,43 @@ namespace OpenHardwareMonitor.Hardware.HDD {
C6 000000000000 100 100 0
C7 810100000000 253 253 0
E8 240000000000 60 60 10
E9 630594120000 92 92 0")
E9 630594120000 92 92 0"),
new Drive("Maxtor 6L300R0", null, 10,
@"3 9E5500000000 183 193
4 0A0D00000000 252 252
5 010000000000 253 253
6 000000000000 253 253
7 000000000000 252 253
8 DFA700000000 224 245
9 CE5700000000 155 155
10 000000000000 252 253
11 000000000000 252 253
12 BA0400000000 250 250
192 000000000000 253 253
193 000000000000 253 253
194 3D0000000000 253 42
195 5D1F00000000 252 253
196 000000000000 253 253
197 010000000000 253 253
198 000000000000 253 253
199 030000000000 196 199
200 000000000000 252 253
201 000000000000 252 253
202 000000000000 252 253
203 000000000000 252 253
204 000000000000 252 253
205 000000000000 252 253
207 000000000000 252 253
208 000000000000 252 253
209 EA0000000000 234 234
210 000000000000 252 253
211 000000000000 252 253
212 000000000000 252 253
130 5B0300010002 1 9
59 FC3203030100 205 0
1 000000000000 0 0
144 000000000000 0 34 ")
};
public IntPtr OpenDrive(int driveNumber) {
+26 -23
View File
@@ -40,33 +40,36 @@
namespace OpenHardwareMonitor.Hardware.HDD {
using System.Collections.Generic;
[NamePrefix(""), RequireSmart(0xD1)]
[NamePrefix(""), RequireSmart(0x01), RequireSmart(0x09), RequireSmart(0x0C),
RequireSmart(0xD1), RequireSmart(0xCE), RequireSmart(0xCF)]
internal class SSDIndilinx : AbstractHarddrive {
private static readonly IEnumerable<SmartAttribute> smartAttributes =
new List<SmartAttribute> {
new SmartAttribute(0xB8, SmartNames.InitialBadBlockCount),
new SmartAttribute(0xC3, SmartNames.ProgramFailure),
new SmartAttribute(0xC4, SmartNames.EraseFailure),
new SmartAttribute(0xC5, SmartNames.ReadFailure),
new SmartAttribute(0xC6, SmartNames.SectorsRead),
new SmartAttribute(0xC7, SmartNames.SectorsWritten),
new SmartAttribute(0xC8, SmartNames.ReadCommands),
new SmartAttribute(0xC9, SmartNames.WriteCommands),
new SmartAttribute(0xCA, SmartNames.BitErrors),
new SmartAttribute(0xCB, SmartNames.CorrectedErrors),
new SmartAttribute(0xCC, SmartNames.BadBlockFullFlag),
new SmartAttribute(0xCD, SmartNames.MaxCellCycles),
new SmartAttribute(0xCE, SmartNames.MinErase),
new SmartAttribute(0xCF, SmartNames.MaxErase),
new SmartAttribute(0xD0, SmartNames.AverageEraseCount),
new SmartAttribute(0xD1, SmartNames.RemainingLife,
null, SensorType.Level, 0),
new SmartAttribute(0xD2, SmartNames.UnknownUnique),
new SmartAttribute(0xD3, SmartNames.SataErrorCountCrc),
new SmartAttribute(0xD4, SmartNames.SataErrorCountHandshake),
};
new SmartAttribute(0x01, SmartNames.ReadErrorRate),
new SmartAttribute(0x09, SmartNames.PowerOnHours),
new SmartAttribute(0x0C, SmartNames.PowerCycleCount),
new SmartAttribute(0xB8, SmartNames.InitialBadBlockCount),
new SmartAttribute(0xC3, SmartNames.ProgramFailure),
new SmartAttribute(0xC4, SmartNames.EraseFailure),
new SmartAttribute(0xC5, SmartNames.ReadFailure),
new SmartAttribute(0xC6, SmartNames.SectorsRead),
new SmartAttribute(0xC7, SmartNames.SectorsWritten),
new SmartAttribute(0xC8, SmartNames.ReadCommands),
new SmartAttribute(0xC9, SmartNames.WriteCommands),
new SmartAttribute(0xCA, SmartNames.BitErrors),
new SmartAttribute(0xCB, SmartNames.CorrectedErrors),
new SmartAttribute(0xCC, SmartNames.BadBlockFullFlag),
new SmartAttribute(0xCD, SmartNames.MaxCellCycles),
new SmartAttribute(0xCE, SmartNames.MinErase),
new SmartAttribute(0xCF, SmartNames.MaxErase),
new SmartAttribute(0xD0, SmartNames.AverageEraseCount),
new SmartAttribute(0xD1, SmartNames.RemainingLife,
null, SensorType.Level, 0),
new SmartAttribute(0xD2, SmartNames.UnknownUnique),
new SmartAttribute(0xD3, SmartNames.SataErrorCountCrc),
new SmartAttribute(0xD4, SmartNames.SataErrorCountHandshake)
};
public SSDIndilinx(ISmart smart, string name, string firmwareRevision,
int index, ISettings settings)
+2 -2
View File
@@ -37,5 +37,5 @@
using System.Reflection;
[assembly: AssemblyVersion("0.3.2.6")]
[assembly: AssemblyInformationalVersion("0.3.2.6 Alpha")]
[assembly: AssemblyVersion("0.3.2.7")]
[assembly: AssemblyInformationalVersion("0.3.2.7 Alpha")]