最終更新:2025-11-11 (火) 11:30:22 (26d)  

URB
Top / URB

USB Request Block

Windows/URB

Linux

構造体

類似

  • kiocb?
  • skbuff?

URBのライフサイクル

  • USBデバイスドライバによって作成される。
  • 特定のUSBデバイスの特定のエンドポイントに割り当てられる。
  • USBデバイスドライバによって、USBコアにサブミットされる。
  • USBコアによって、特定のデバイスのための特定のUSBホストコントローラに送信される。
  • デバイスに対するUSB転送を行うUSBホストコントローラによって処理される。
  • 要求が完了したときに、USBホストコントローラドライバがUSBデバイスドライバに通知する。

関数

ホストにキューイング

hc_driver.urb_enqueue

ehci_hc_driver

xhci_plat_xhci_driver

メモ

  • urb構造体を、ドライバで静的に、あるいは別の構造体内に作成してはいけません。USBコアがURBを管理するために使う参照カウント?のしくみを破壊してしまうからです。URBの作成 には、関数usb_alloc_urbを呼び出します。

URBを使わない関数 (単純なデータ送受信)

ドキュメント

LDD3

関連

参考