タイトル : Re^5: USBメモリーのシリアル値取得 投稿日 : 2016/05/19(Thu) 16:39 投稿者 : 魔界の仮面弁士
> 途中で気が付いて、投稿記事の方を修正しましたが、行き違いでお手間を取らさせてしまいました。 ちなみに、日本語化の差分も同じページにあります。 > 予算的に問題がありますので・・・。 個人での利用でしょうか(シェアウェア作成など)。 それとも、業務用途での利用でしょうか? > VendorID :048d Integrated Technology Express, Inc. 社ですね。 > SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&3B89FEEE&0&_&0 > SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&28D04E49&0&_&0 これらは、レジストリの HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ にあるキー情報を指しています。デバイスマネージャーが見ているのも多分ココ。 以下、関連するかもしれない情報 https://msdn.microsoft.com/en-us/library/windows/hardware/jj649944.aspx https://msdn.microsoft.com/en-us/library/windows/hardware/ff541224.aspx https://msdn.microsoft.com/en-us/library/windows/hardware/ff546284.aspx 今回の目的で使うのであれば、USBSTR エントリーよりも USB エントリーの方を記録した方が良いかもしれません。 USBSTOR の方だと、ベンダー情報が VEN_GENRAL などの表記となって 競合しかねないですが、USB や PCI なら VID/PID で記録されるようですので。 とはいえ、中には全デバイスに同じ PID を振ってしまう 企業もあるらしいですが…。(例: GeoLab 社 → VID_9148&PID_0004) > Win7の「デバイスマネージャー」→「ユニバーサルシリアルコントローラー」→「USB大容量記憶装置(右クリック)」 手元にデバイスの持ち合わせが無いので、正確には確認できませんが、 USBSTOR のエントリーが現れるのは、「ディスク ドライブ」配下のようです。 「ユニバーサルシリアルコントローラー」配下に現れるのが、 USB のエントリーのようです。 USB メモリを異なるポートに挿してみて、それぞれのエントリーが どのような値になるを確認してみてください。 なお、競合した場合には末尾に &1 などの枝番がつくらしいです。 > ■「みかん」:PCや取り付けポートを変えてみた結果 > 全てにおいて 6 を表示。 > ※投稿コードで得たInstance IDの一部に 6 を確認。 みかんは、"6&3B89FEEE&0&_&0" や "6&28D04E49&0&_&0 といった "&" を含む文字列を正しく処理できないようです。 正しいシリアルを持つデバイスの場合、そもそも "&" の文字が 含まれることがないため、みかんでも正常に表示できると思います。 > 先頭から\を仕切り文字として考えた場合3つ目の &までの値が モード切替によって、別デバイスとして認識されるような USB ストレージの場合 USBSTOR\☆☆☆\◎◎◎◎&0 から USBSTOR\★★★\◎◎◎◎&1 に変化することもありますね。(この製品のシリアルは◎◎◎◎) > ■「USBDeview」:PCや取り付けポートを変えてみた結果 > 全てにおいて ""(値無し) を表示。 シリアル値が得られるデバイスの場合は、 接続先が変わっても一定の値が得られる…はず。 |