スパムが酷いため休止中です。移転先検討中です。(2014/8/17)
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
1629 / 1841 ←次へ | 前へ→

Re:ドライブレターが表示されない
←back ↑menu ↑top forward→
 Lansen WEB  - 11/3/22(火) 0:41 -

引用なし
パスワード
   こんばんは。
この問題、僕の環境でも発生したのでCrystalDiskInfo 4 Dev6aのソースを使って軽くデバッグしてみました。

僕の環境で発生していたのは、ストレージのデバイス名が短いときに発生するバグのようです。
OCZのVertex30GB版(デバイス名が"OCZ-VERTEX")のみドライブレターが表示されていませんでした。
対策としては、AtaSmart.cppの1204行目あたりに
model.Replace(_T(" SATA Disk Device"), _T(""));
を付け加えると直りました。

バグの詳細は以下の通りです。
CAtaSmart::Init関数内において、Vertexに対応するmodel変数の内容が"OCZ-VERT EX SATA Disk Device"になるので、cmp1変数の内容が"OCZ-VERTEXSATADi"になってしまいます。
一方、cmp2変数は"OCZ-VERTEX"なので、1229行目のif文がfalseとなり、1247行目でvars.RemoveAt(index)が呼ばれてvarsからVertexが除去されてしまいます。
この状態でドライブレターの列挙処理に入るので、Vertexを除いた残りのストレージにドライブレターが表示されます。
その後、1542行目で再度GetDiskInfo関数が呼ばれ、Vertexが復活しますが、ドライブレターは割り当てられていない状態になります。

以上、ご報告でした。

1,248 hits

ドライブレターが表示されない こん 11/3/7(月) 6:30
Re:ドライブレターが表示されない ひよひよ 11/3/7(月) 7:19
Re:ドライブレターが表示されない こん 11/3/7(月) 10:42
Re:ドライブレターが表示されない Lansen 11/3/22(火) 0:41
Re:ドライブレターが表示されない ひよひよ 11/3/22(火) 21:34
Re:ドライブレターが表示されない Lansen 11/3/24(木) 0:49

1629 / 1841 ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
ページ:  ┃  記事番号:   
214934
(SS)C-BOARD v3.8(とほほ改ver2.1) is Free