代码之家  ›  专栏  ›  技术社区  ›  Julio Guerra

为什么使用libusb需要分离内核驱动程序?

  •  3
  • Julio Guerra  · 技术社区  · 9 年前

    为什么使用libusb需要分离内核驱动程序?为什么不能在内核驱动程序中执行一些USB IO?

    2 回复  |  直到 9 年前
        1
  •  1
  •   Stian Skjelstad    9 年前

    主要是为了避免混淆USB设备的状态。每个接口在任何给定时间只能有一个“用户”。

    许多USB设备可以进入不同的执行域、缓存状态、DMA传输等。这些类型的设备将在驱动程序中具有状态机跟踪器,并且很容易失去同步或其他类型的冲突。并非所有设备都是简单的HID接口(可以通过其他API的btw操作)

        2
  •  0
  •   Majonsi    9 年前

    为了通信,每个USB设备都有端点。这些端点类似于管道,在这些管道中,所有数据都在传输。

    一个端点只有一个方向,只能由一个驾驶员使用。

    因此,为了使这些端点可用,您需要分离内核驱动程序。

    如果需要,您可以随时检测并停用使用该设备的驱动程序,以避免使用分离内核驱动程序。