2012-12-27 38 views
9

オペレーティングシステムにMac-ID、Harddisk ID、EthernetカードIDに固有の識別子があるなど、一意の識別子でUSBデバイスを識別できますか?私は簡単にUSBパーティションのボリュームシリアル番号を変更することができますか、またはユーザーがそれをフォーマットするときに変更することができます知っている。ユニークなUSBデバイスの識別方法

しかし、WMIサービスを使用してMFC(Visual C++またはC#)経由で取得できる「USBハードディスクIDまたはUSBハードウェアID」のIDがありますか?そのような識別子は物理デバイスに固有のものでしょうか? ...

+0

MACアドレスが等しいかゼロの安価なネットワークアダプタがあることがあります。 –

+0

@ Vi.あなたのコメントを説明できますか? – highlander141

+0

時には、コンピュータの観点から見て実際に「同一」であり、規格が一意である必要があるにもかかわらず、シリアル番号がないか、または等しい、誤ったビットのデバイスがあることを意味します。なぜあなたは任意のUSBデバイスを区別する必要がありますか?または、マスストレージやネットワークアダプタなど特定のものに対してのみ必要ですか? –

答えて

12

すべてのUSBデバイスで使用できる「一意の番号」に最も近いのは、VIDとPID、ベンダーIDと製品IDです。これは、デバイスを特定し、それに適切なドライバをインストールするために使用されます。しかし、それは同じ製品のための同じ数字のセットです、あなたの手に持っている特定のデバイスを識別するのに十分ではありません。したがって、おそらくあなたが何をしているのか、おそらくライセンス確認手続きを実装することは無駄です。

特定の種類のUSBデバイスのみがシリアル番号を実装しています。ドライブフォーマッタがボリュームのシリアル番号を生成するため、フラッシュドライブから偶発的に取得します。役に立たなくても、簡単に変更できます。 USB無線LANアダプターが動作する可能性があります。製造元固有のMACアドレスを生成する必要があります。

この目的のためにが完全のUSBデバイスのクラスが1つあります。総称は「ドングル」で、これはそのために作られたものです。ソフトウェアを購入すると、プログラムにリンクすることができるソフトウェアが入手できます。このソフトウェアは、ライセンス番号を確認する改ざんのない方法を提供します。これは、ライセンス確認手続きの重要な部分であり、通常は弱いリンクです。ドングルの詳細はWikipedia articleです。

+1

VIDとPIDについて。ベンダーIDと製品IDは、デバイス自体のものではなく、デバイスのUSBコンポーネントのIDであることがわかりました。言い換えれば、類似の機能を提供する異なるベンダーの異なるUSB物理デバイスは、特定のベンダーからの同じUSBコンポーネントを供給することができる。取得したVIDとPIDは、USBコンポーネント用であり、USBコンポーネントが含まれているデバイスを特定するものではありません。 USBコンポーネントを使用して実際のデバイスの特性を判断するには、追加のクエリを実行する必要があります。 –

関連する問題