【画像処理のKIT】プラグ&プレイとベンダーID
オリジナルのPCIボード、PCI Expressボード、USB機器などを開発(又は開発委託)される方は、多いかと思います。
デバイスを追加するだけで、自動的に必要なデバイスドライバを探しにいって、自分にマッチしたドライバを選択してくれるのでありがたいですよね。
今では、あたりまえの機能になってますが、どんな仕組みで実現しているか、ご存知でしょうか?
まず、何かのデバイスが追加されたらOS側が、追加されたデバイス情報をサーチします。ボードの場合、そのボードが要求するリソースサイズ等です。
次に、その要求を満たす「空きアドレス」を探します。
それを、見つけたら、空きアドレスにボードへのアクセスアドレスをマッピングします。すなわち、ここまではボード用デバイスドライバは何番地にアクセスすると自分が制御したいボードにアクセスできるか不明なのです。
【ここから重要】デバイスドライバは、自分が制御したいOSがマッピングしてくれたボードをどうやって識別するのでしょう?
それが、【ベンダーID】と【デバイスID】なのです。
すなわち、世界中のPCで【ベンダーID】と【デバイスID】は異なっている必要があります。
ワールドワイドでユニークなID。これを管理、発行する団体がPCI-SIGであり、USB I/Fです。
このルールは、開発者は厳守しましょう。デタラメなIDを使われては正規のIDベンダーが、迷惑しますし、ユーザーも「相性問題?」などと混乱します。
PCI-SIGが取り締まってくれるはずですが、大問題にならないうちにルールを守る開発者になりましょう。