複数のBluetoothスタックを一台のPCで使う


Windows XPだけ*1は複数のBluetoothスタックを同時にインストールすることが出来る。
現実的なシチュエーションでこれが役立つのは複数のBluetoothドングル(USBアダプタ)を場所によって使いまわすようなケースだろう*2

基本的な事項

TCP/IPが当初そうであったように、Bluetoothの各種プロトコル実装は複数存在する。
良く知られているものには以下の4種類がある。

USB接続のBluetoothドングルを購入した場合、どのスタックが付属してくるかは完全に運試しとなる。デバイスのマニュアルやファームウェアダウンロード、スクリーンショット等を見て判断するしかない。
例えば、通常の状態ではWIDCOMMのスタックではApple Wireless Keyboardが使えない。他にもWiiリモコンといった通常のPCで使用することを想定されていないデバイスでは問題が起こる組み合わせが知られている。
重要な問題として、Windows標準以外のプロトコルスタックはライセンス認証を採用しているため、異なる機器で付属Bluetoothスタックを使いまわすことは出来ない。
もし、異なるUSBドングルを使いまわす可能性が有るなら、付属のスタックをインストールすることなく目的を達成できないか検討する価値が有る。このようなarticleを書くほど、複数のBluetoothスタックの共存にはノウハウが必要となる。
ただし、Broadcomのスタックだけは例外となる。BroadcomのチップはBroadcomのスタックでしか使えないし、Broadcomのスタックは(基本的に)Broadcomのチップしか制御できない*3

Broadcom(旧WIDCOMM)

BroadcomのチップはThinkpad等の内蔵Bluetoothで良く利用されている。Broadcomのスタックは歴史的な事情からWIDCOMMと呼ばれることも有る。
他のスタックと異なり、WIDCOMMは完全にBroadcomのチップと『相互に』依存しているため、特に問題なく共存することが出来る。逆に、BroadcomBluetoothチップ(の一部)は動作に揮発性のファームウェアを要求するため、他のスタックで正常に取り扱うことは出来ない(MSのスタックを含む)。
Vista以降のWindowsではWIDCOMMのスタックはWindowsBluetoothフレームワークにも依存するため、スタックの共存は行えない。

東芝スタック

東芝スタックは一般的なBluetoothチップに対応している。このため、MSの用意するBluetoothドライバと衝突することになる。
幸い、Windows XPはUSBポートごとにドライバをインストールするため、適切なデバイスをインストールすれば良い。『デバイスドライバの更新』からC:\Program Files\Toshiba\Bluetooth Toshiba Stack\Drivers\tosrfusbにあるドライバを選択する。ただし、デバイスドライバの名前がMSのものと同一なので多少運試しをする必要が有る。
この特徴は、東芝スタックがライセンスされたドングルにMSのスタックが使用されてしまう場合にも役立つ。

Bluesoleil

(これに関しては現在検討していない)

*1:Windows2000もおそらく含まれるが、MSのスタックは動作しない

*2:本来は仮想マシン同士の接続のためにBluetoothエミュレータを使う検討からこれを行った

*3:Linux等では問題ない