xHCIとWinUSB

| コメント(0) | トラックバック(0)
いきなりIndex 0EEhでString Descriptorを取得に来ることで悪名高いMicrosoft OS Descriptorですが、xHCIだと読みに来るものが限られるようです。

どうもUSBスタック(正確にはハブクラスドライバ?)が主体的に行なうものらしく、Windows 8以降のMicrosoftスタックだと読みに来ますが、少なくともルネサスのスタックだとOSに関わらず、Extended Propertiesを読みません。Extended Compat IDは読みます。

他のメーカーは不明ですが、基本的にルネサスはEHCIスタックをベースに開発したのでしょうから、Windows XP初期に実装されたものだけが引き継がれ、結果として制限事項になったと推測しています。

ということは、例えば.inf無しでWinUSBを読み込ませる企ては、限定的にしか実現されないことになります。DeviceInterfaceGUIDが書き込まれないためWinUSBのAPIから接続できません。

ただしWinUSB.sys/.dllの読み込みまではできるので、Device ParametersにDeviceInterfaceGUIDを書き込めば(通常の管理者権限で可能)何とかなります。個人使用ならこれで充分でしょう。

まとめると、回避法は以下になります。
  • Windows 8以降でMicrosoftスタックを使用
  • xHCIポートを使わない
  • HCKにinfを申請し署名入り.catファイル発行(有償)
  • DeviceInterfaceGUIDを手動で書き込み
  • 自己署名とテストモード
  • 32ビット版WindowsやXP x64

トラックバック(0)

トラックバックURL: https://mychro.mydns.jp/cgi-bin/mt/mt-tb.cgi/379

コメントする

アーカイブ

ウェブページ

Powered by Movable Type 5.2.13

ホームページ