tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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や取り付けポートを変えてみた結果
> 全てにおいて ""(値無し) を表示。

シリアル値が得られるデバイスの場合は、
接続先が変わっても一定の値が得られる…はず。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。