Git Product home page Git Product logo

crystaldiskinfo's People

Contributors

acherepkov1989 avatar da2x avatar darek334 avatar directed-graph avatar gakutomatsumura avatar haobinnan avatar hiyohiyo avatar huoxingdawang avatar kekyo avatar krrr avatar kureikei avatar lltcggie avatar lorand-horvath avatar lsd-techno avatar maidmeow4 avatar marian-sk avatar maxixsvk avatar mjunix avatar roy-n-roy avatar sangkmt avatar shigeakiasai avatar sorairolake avatar starfalldown avatar starsfalldown avatar tana3n avatar yfdyh000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crystaldiskinfo's Issues

Logitec LHR-2BDPU3 対応

概要

Logitec LHR-2BDPU3 に接続されたドライブが読めないという動作報告を受領。

ロジテックのHDDクレードル買ったら、CrystalDiskInfoでSMART値が読めなかった。HDDScanだと読めた。

— れーて (@letheiv) 2016年5月28日
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

実装

エンジニアリングの結果、こんな感じの 16 バイトコマンドを送り込むことで接続された 2 台の S.M.A.R.T. 情報などが取得できるようになりました。

else if (type == CMD_TYPE_LOGITEC2)
{
    sptwb.Spt.CdbLength = 16;
    sptwb.Spt.Cdb[0] = 0xD8;
    sptwb.Spt.Cdb[1] = 0x15;
    sptwb.Spt.Cdb[2] = 0x00;
    sptwb.Spt.Cdb[3] = 0xD0; // READ_ATTRIBUTES
    sptwb.Spt.Cdb[4] = 0x06;
    sptwb.Spt.Cdb[5] = 0x7B;
    sptwb.Spt.Cdb[6] = 0x00;
    sptwb.Spt.Cdb[7] = 0x00;
    sptwb.Spt.Cdb[8] = 0x02;
    sptwb.Spt.Cdb[9] = 0x00;
    sptwb.Spt.Cdb[10] = 0x01;
    sptwb.Spt.Cdb[11] = 0x00;
    sptwb.Spt.Cdb[12] = 0x4F; // SMART_CYL_LOW
    sptwb.Spt.Cdb[13] = 0xC2; // SMART_CYL_HIGH
    sptwb.Spt.Cdb[14] = target; // 
    sptwb.Spt.Cdb[15] = 0xB0;// SMART_CMD
}

グラフ機能を NVMe に対応

概要

グラフ機能は NVMe に未対応。根本的な対応にはフォーマット変更などが必要ですが、現状を維持しつつ対応したい。

実装

  • 書き込み量などの主要項目をログ出力
  • グラフモードの選択肢に NVMe 追加

NVMe 用 S.M.A.R.T. 属性のテキストコピー対応

概要

NVMe 用 S.M.A.R.T. 属性をテキストコピー(編集 > コピー)時の情報を16 bytes 生の値を表示する形に変更する。

ID Cur Wor Thr RawValues(6) Attribute Name
01 __0 __0 __0 000000000000 Critical Warning
02 __0 __0 __0 000000000136 Composite Temperature
ID RawValues(16)                    Attribute Name
01 00000000000000000000000000000000 Critical Warning
02 00000000000000000000000000000136 Composite Temperature

本当に 16 bytes も表示するのが良いのかは要検討ですが・・・。

add an option to launch an external command

Would it be possible to add an option to launch an external command
(e.g. .bat file) when the temperature warning becomes active/inactive?
I want to switch on an additional fan to lower the temperature.

Wider label space

Default font was changed from Tahoma to Segoe UI.
So, label space is too small.

ビルドに必要なリソースファイル同梱

概要

GitHub 公開時にはリソースが不足しており、リソースファイルを追加しないとビルドできませんでした。

対応

リソースファイルを git 管理対象として追加

  • res/*
  • resS/*
  • resN/*

Seems does not support WD blue 3d ssd's S.M.A.R.T?

I am using the latest version 8.0.0, while most attribute of my SSD (WD blue 3D NAND SSD) shows "Vendor Specific".
image

I find their corresponding name in WD's toolkit software, maybe you can add them in the future?
image
image
image

Disabled Logging support

No Logging support for reducing storage access.


This is a minor, but I try to reduce the amount of writes to my SSD. While
auditing writes, I noticed CDI writes logs every minute. It there a way to
stop the log collection while keeping alerting operational?

CDI creating self-referencing symbolic links

Self-Referencing_Sym_Links

Running CDI generates symbolic links (Dialog & Language as shown in screenshot) along with the CDI-Smart folder. These symbolic links reference the parent folder they sit in (Reference, in this case), which causes recursion issues with programs/scripts accessing that parent folder.

Workaround for the moment:
Deleting symbolic links of course removes the issue. CDI only seems to create these links on launch, but deleting them with CDI still open does cause functionality issues with the program.

Suggested fix:
CDI remove symbolic links upon closing program.

Kingston Technology SR831810 M support

Vendor/Model: KINGSTON SA400S37120G
Firmware: SBFKB1E1_N/A

Id [hex] - Description:

Norm Worst Thresh Raw Flags

======================================================

1 [0x01] - Uncorrectable Errors:

0   100     0   0x0000000000000000   0x32,SP,EC,OC

9 [0x09] - Power On Hours:

100 100 0 0x0000000000000003 0x32,SP,EC,OC

12 [0x0c] - Power Cycles:

100 100 0 0x0000000000000007 0x32,SP,EC,OC

148 [0x94] - Vendor Unique:

100 100 0 0x0000000000000000 0x00

149 [0x95] - Vendor Unique:

100 100 0 0x0000000000000000 0x00

167 [0xa7] - Vendor Unique:

100 100 0 0x0000000000000000 0x00

168 [0xa8] - SATA PHY Error Count:

100 100 0 0x0000000000000000 0x12,EC,OC

169 [0xa9] - Vendor Unique:

100 100 0 0x000000000000000a 0x00

170 [0xaa] - Bad Block Count:

100 100 10 0x0000000000000007 0x00

172 [0xac] - Vendor Unique:

100 100 0 0x0000000000000000 0x32,SP,EC,OC

173 [0xad] - Erase Count:

100 100 0 0x0000000000000002 0x00

181 [0xb5] - Vendor Unique:

100 100 0 0x0000000000000000 0x32,SP,EC,OC

182 [0xb6] - Vendor Unique:

100 100 0 0x0000000000000000 0x00

187 [0xbb] - Uncorrectable ECC Errors:

100 100 0 0x0000000000000000 0x32,SP,EC,OC

192 [0xc0] - :

100 100 0 0x0000000000000001 0x12,EC,OC

194 [0xc2] - Temperature:

65 61 0 0x0000002700160023 0x22,SP,OC

196 [0xc4] - Reallocation Events:

100 100 0 0x0000000000000000 0x32,SP,EC,OC

199 [0xc7] - SATA CRC Error:

100 100 0 0x0000000000000000 0x32,SP,EC,OC

218 [0xda] - CRC Error Count:

100 100 0 0x0000000000000000 0x32,SP,EC,OC

231 [0xe7] - SSD Wear Indicator:

0     0     0   0x0000000000000064   0x00

233 [0xe9] - Lifetime Nand Writes:

100 100 0 0x000000000000001d 0x32,SP,EC,OC

241 [0xf1] - Lifetime Writes from Host:

100 100 0 0x0000000000000017 0x32,SP,EC,OC

242 [0xf2] - Lifetime Reads from Host:

100 100 0 0x0000000000000017 0x32,SP,EC,OC

244 [0xf4] - Average Erase Count:

100 100 0 0x0000000000000000 0x00

245 [0xf5] - Max Erase Count:

100 100 0 0x0000000000000002 0x00

246 [0xf6] - Total Erase Count:

100 100 0 0x0000000000000508 0x00

246 [0xf6] - Total Erase Count:

100 100 0 0x0000000000000508 0x00

通知領域アイコンのメインアイコンが消えない

概要

「温度アイコンのみ表示」をチェックしても通知領域アイコンのメインアイコンが消えないことがある。

改善への道筋

  • メインアイコンが消えない条件を明確する
  • メインアイコンを消したり表示したりするコード周辺にデバッグ出力機能を付加し挙動を確認する。

Wide UI support

最大8台から最大12台の表示に対応(通常版のみ)
横幅 672px → 1008px

一部ドライブで S.M.A.R.T. しきい値がずれる

概要

一部ドライブで S.M.A.R.T. 属性としきい値の index がずれる。健康状態の誤判定にもつながっている。

参考

http://crystalmark.info/board/c-board.cgi?cmd=one;no=676;id=

n 氏からのパッチ

BOOL CAtaSmart::FillSmartThreshold(ATA_SMART_INFO* asi)
{
    int count = 0;
    for(int i = 0; i < MAX_ATTRIBUTE; i++)
    {
        SMART_THRESHOLD* pst = (SMART_THRESHOLD*)&(asi->SmartReadThreshold[i * sizeof(SMART_THRESHOLD) + 2]);
        if(pst->Id != 0)
        {
            for(int j = 0; j < asi->AttributeCount; j++)
            {
                if(pst->Id == asi->Attribute[j].Id)
                {
                    memcpy(&(asi->Threshold[j]), pst, sizeof(SMART_THRESHOLD));
                    count++;
                }
            }
        }
    }
    ...
}

CAtaSmart init failed

I'm trying to get physical drives as following:

CAtaSmart m_Ata;
m_Ata.Init(TRUE, FALSE, NULL, FALSE, TRUE, FALSE);

However when checking m_Ata.vars.GetCount() it return Zero.

What are the possible cases for getting this result? Thanks.

音声再生機能の改善

概要

現状 UI スレッドをブロックする形での実装。(超簡易手法)

改善方法

  • 音声通知を別スレッドで実行
  • 複数音声の再生とならないよう UI 側で再生を制御

Advanced format 4Kn sector device identification is incorrect

avatar
This is a 4Kn sector device but the capacity identification is not correct, maybe this is because of windows api problem?

Is it possible to record all Smart? Currently, recording only the current value may be inaccurate for judging certain hard drives.

Sends IDENTIFY_DEVICE for refresh (F5)

リフレッシュする度にIDENTIFY_DEVICEを送るように変更する。
・IDENTIFY_DEVICEで確認するパラメータが存在
・ストレージの切断をいち早く反映
など

Add Syslog support

---- User's request

I would like to track the Data with my Syslog Server. It would be sensational if you could add the following:

  • A page, in which I can select what Data to send and the send frequency
  • Syslog configuration page with ability to send a Test Message

Then the Software would be absolutely perfect for professional use.

License Question

What is the license for this code?

Can I fork this product and reproduce/redistribute it?

feature req: alert when specified bytes per time period were writen

Hi Guys,

Thanks for all of your good work.

How do you perceive a feature, especially useful for SSDs, where in Alerts would be definable an Alert that would show when certain Bytes per Time are writen, i.e. 10 GB written in last minute?

I am requesting this feature because I saw a scenario where an app that was profiling the SSD in background, what was unwanted and also not triggered by the user, wrote 500 GB to it without a knowledge of a user. If there would be an early enough alert that something had written 50 GB in last, let's say minute, or maybe an earlier alert after 30 sec that there were 25 GB written in last 30 sec, the unwanted process could be stopped before wasting the rest of valuable GBs up to 500GB.

Thank you very much for considering this, best regards, God bless you, Kamil+

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.