USB/IPのWin64対応 / libusbKによるlibusb-1.0 for Windows

今年に入ってから、WindowsのUSB環境に大きな進展が有った。

USB/IPのWin64対応

USB/IPは、2月にReactOSプロジェクト( ! )から署名を寄付され、Win64対応のドライバを公開している。
USB/IPはUSB機器をTCP/IP経由で共有するためのプロトコルであり、現在のところLinuxWindowsで利用できる。
プロトコルデザインに問題が有ることを除けば、USB/IPはそれなりに機能するので注目に値する。
今回署名が提供されたのは、Windows側の仮想ホストコントローラドライバで、これによりテスト署名を有効にしなくても64bit版のWindows上で、ネットワーク上のUSB機器を接続することができるようになる。
Linux側のドライバは現在mainlineツリーのstagingに存在する。あまり良い進捗は無いが、現在でも機能する。
USB/IPの重要な課題はUIの提供と移植性の高いサーバだろう。

libusbKによるlibusb-1.0サポートの開始

libusb-1.0は、USBデバイスをユーザモードから制御するAPIデファクトスタンダードであり、(kinectのような)殆どの"USB hack"はこのAPIに依存しているといっても過言ではない。
従来、Windows上ではWinUSBと呼ばれるMS謹製のユーザモードUSB APIのWrapperとして機能していた。しかし、WinUSB自体には制約が多く、libusb-1.0のAPI全てを実装するのには十分でない。
特に、WinUSBはアイソクロナス転送モードをサポートしていないため、Webcamのようなストリームデバイスの操作ができないという問題があった。
libusbKは、従来のlibusb-win32と呼ばれるプロジェクトによって作成されたドライバに手を入れたもので、WinUSBのAPIをエミュレーションしつつ、元々アイソクロナス転送モードを持っていたlibusb-win32の機能性を確保している。
libusbプロジェクトは、テストのためにVID/PIDを提供してくれるベンダを探している。( http://libusb.6.n5.nabble.com/USB-VID-PID-for-open-source-projects-td4259925.html )