USBドライバシリーズ【OHCI/EHCIドライバ】

割り込みの排他制御不足により、コントロール転送が失敗することがある


適用製品
・Cente USB Host EHCI (〜2024/8/31)

【該当するユーザ環境】
2024/8/31までに出荷したCente USB Host EHCIと組み合わせてコントロール転送を使用するクラスドライバを使用しているユーザ。Centeミドルウエアであれば、Cente USB Host COM、RNDIS、CDC-ECM、Printer、HIDクラスドライバが該当します。なお、HUBを介して同時に複数のUSBメモリを使用するMass Storage環境も該当します。Mass Storageを単独で使用する環境は非該当です。また、ユーザの独自クラスドライバであれば、コントロール転送を使用しているものが該当します。

【障害内容】
まれにコントロール転送が失敗し、usbh_issue_ctrl()がエラー(番号:-1004)を返すことがあります。これによってどのような症状となるかはご利用のクラスドライバや環境に依存しますので、該当するお客様は営業担当またはsupport_XXXatmarkXXX_cente.jpまでお問い合わせください。

【発生理由】
本来コントロール転送の実行において「実行準備」と「実行開始」の間に他の処理が割り込まれないのが正しい動作です。しかし、排他制御が不十分であったためこの二つの処理の間にその他の転送(バルク転送等)の完了割り込みが発生した場合、実行準備中のコントロール転送が完了したと誤認して完了処理がされてしまい、転送失敗という現象・障害になっていました。

【回避方法】
ソースコードの修正が必要です。
修正ソースにつきましては、弊社サポートまでお問い合わせ下さい。