Page 258 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼ASM2362搭載SD-M2NV CDI動作報告 mozo 19/4/8(月) 11:56 ┣Re:ASM2362搭載SD-M2NV CDI動作報告 mozo 19/4/8(月) 21:41 ┗Re:ASM2362搭載SD-M2NV CDI動作報告 ひよひよ 19/4/10(水) 22:00 ┗Re:ASM2362搭載SD-M2NV CDI動作報告 mozo 19/4/12(金) 17:02 ┗Re:ASM2362搭載SD-M2NV CDI動作報告 ひよひよ 19/4/13(土) 0:31 ┗Re:ASM2362搭載SD-M2NV CDI動作報告 mozo 19/4/13(土) 19:37 ─────────────────────────────────────── ■題名 : ASM2362搭載SD-M2NV CDI動作報告 ■名前 : mozo ■日付 : 19/4/8(月) 11:56 -------------------------------------------------------------------------
エアリア製ASM2362搭載M.2 SSDケースSD-M2NVを手に入れたので、中身SanDisk Extreme Pro M.2 NVMe 500GBで試しました。 7.7.0では検出されSMARTを読めましたが、7.8.3と8.0.0ではController Mapに出るだけとなります。 8.0.0を7.7.0と比較してみました。 1.DoIdentifyDeviceSatにCMD_TYPE_LOGITEC1で何らかのデータが得られてしまう 7.7.0との差はここです。 > sptwb.DataBuf[510] != 0xA5 がコメントアウトされたことでTRUEで戻ってしまいます。 ブリッジの名前等が入っていますが、AddDiskで解釈出来るフォーマットではないようです。 7.7.0ではFALSEで戻るのでGetDiskInfoの最後の最後にあるDoIdentifyDeviceNVMeASMediaまで走ります。 つまりユーザー側で出来る当面の代替策としては上級者向け機能からLogitec1を無効にする手が有効です。 2.flagNVMeが立たない AtaSmart.cpp 1430行目 > if (model.Find(_T("NVMe")) >= 0 || pnpDeviceId.Find(_T("NVME")) >= 0) model = L"SanDisk Extreme Pro 500G SCSI Disk Device" pnpDeviceId = L"SCSI\\DISK&VEN_SANDISK&PROD_EXTREME_PRO_500G\\000000" SD-M2NVではどちらにも該当せずSCSIの文字しかありません。 上の1でUSB-HDDの箇所まで処理が流れてしまうのはこれが原因とも言えそうですが、親のVIDとPIDを確認しないと区別の付けようがない気もしますね。 JMS583搭載のJEYI I9は中身のSSDが見えずに model = L"JEIY NVME SCSI Disk Device" pnpDeviceId = L"SCSI\\DISK&VEN_JEIY&PROD_NVME\\000000" となっているのでフラグが立ち、GetDiskInfo内4721行目でUSB-NVMeとして処理されます。 仮にflagNVMeを0にしてもSATには無反応のようで最後のDoIdentifyDeviceNVMeJMicronに行ってくれます。 取り急ぎ乱筆乱文にて失礼致します。 |
度々すみません。 別環境で追試したところ4755行目のUSB SATでもTRUEが返る場合があり、DoIdentifyDeviceSatでsptwb.DataBuf[510] != 0xA5を戻す以外に楽な修正方法がありませんでした。 |
▼mozoさん: >エアリア製ASM2362搭載M.2 SSDケースSD-M2NVを手に入れたので、中身SanDisk Extreme Pro M.2 NVMe 500GBで試しました。 >7.7.0では検出されSMARTを読めましたが、7.8.3と8.0.0ではController Mapに出るだけとなります。 >8.0.0を7.7.0と比較してみました。 > >1.DoIdentifyDeviceSatにCMD_TYPE_LOGITEC1で何らかのデータが得られてしまう >7.7.0との差はここです。 >> sptwb.DataBuf[510] != 0xA5 >がコメントアウトされたことでTRUEで戻ってしまいます。 >ブリッジの名前等が入っていますが、AddDiskで解釈出来るフォーマットではないようです。 >7.7.0ではFALSEで戻るのでGetDiskInfoの最後の最後にあるDoIdentifyDeviceNVMeASMediaまで走ります。 >つまりユーザー側で出来る当面の代替策としては上級者向け機能からLogitec1を無効にする手が有効です。 > >2.flagNVMeが立たない >AtaSmart.cpp 1430行目 >> if (model.Find(_T("NVMe")) >= 0 || pnpDeviceId.Find(_T("NVME")) >= 0) >model = L"SanDisk Extreme Pro 500G SCSI Disk Device" >pnpDeviceId = L"SCSI\\DISK&VEN_SANDISK&PROD_EXTREME_PRO_500G\\000000" >SD-M2NVではどちらにも該当せずSCSIの文字しかありません。 >上の1でUSB-HDDの箇所まで処理が流れてしまうのはこれが原因とも言えそうですが、親のVIDとPIDを確認しないと区別の付けようがない気もしますね。 >JMS583搭載のJEYI I9は中身のSSDが見えずに >model = L"JEIY NVME SCSI Disk Device" >pnpDeviceId = L"SCSI\\DISK&VEN_JEIY&PROD_NVME\\000000" >となっているのでフラグが立ち、GetDiskInfo内4721行目でUSB-NVMeとして処理されます。 >仮にflagNVMeを0にしてもSATには無反応のようで最後のDoIdentifyDeviceNVMeJMicronに行ってくれます。 > >取り急ぎ乱筆乱文にて失礼致します。 ご連絡ありがとうございます。 ASM2362搭載製品ようやく出てきたのですね。実機購入の上、対応できるように改修いたします。 |
▼ひよひよさん: >ご連絡ありがとうございます。 >ASM2362搭載製品ようやく出てきたのですね。実機購入の上、対応できるように改修いたします。 お手数をお掛けします。 Logitec1に反応してしまう件は複数の環境で再現しました。 しかしUSB SATの方は1つの環境でしか起こらず、おまけにその環境では親を見てflagNVMeを立てても画像の通りDoIdentifyDeviceNVMeJMicronで妙なデータが入っていたり、その後の1867行目のGetDiskInfoではDoIdentifyDeviceNVMeJMicronがcount == 317となりFALSEが返って結局DoIdentifyDeviceNVMeASMediaが呼ばれたりとめちゃくちゃでした。 付け焼刃の知識では対応できなかったため、NVMeJMicronとNVMeASMediaの位置をすべて入れ替える対処療法で使っています。 |
本件、実機を購入して根本?対処を行いました。 ベータ版ダウンロード: https://crystalmark.info/download/zz/CrystalDiskInfo8_1_0Beta1.zip 対応内容: https://github.com/hiyohiyo/CrystalDiskInfo/commit/b343c85d4731d7a5a90e49c8c0cdeb82c91c351a https://github.com/hiyohiyo/CrystalDiskInfo/commit/f127c5367705bdf7f9f0622558294cb9ea3faabe 明らかにおかしなデータが得られた時も次のステップに進めず return しているのが原因でしたので、正常にドライブを追加できたときのみ return するように改めました。 |
早速のご対応ありがとうございます。 Logitec1で引っかかる環境では正常に動作するようになりました。 GetDiskInfo内の"AddDisk - USB10"でAddDiskに失敗した場合の処理が以前のままのようですので、こちらも同様に対処していただければと思います。 これで私が確認できた環境の全てで問題が解決します。 ちなみにUSB SATやNVMeJMicronで変なデータが返ってくる環境では繋ぐホストコントローラがASM1142の時だけこの現象が起こり、悪名高きEJ168やチップセットのUSB2.0では起こりませんでした。 # ASMedia同士なのに…… |