【问题标题】:Pass param to USB ioctl将参数传递给 USB ioctl
【发布时间】:2015-10-22 21:06:32
【问题描述】:

我在向 USB 大容量存储设备读/写数据时遇到问题,以下命令出现“设备或资源忙”错误:

ioctl(usbFD, USBDEVFS_CLAIMINTERFACE, &interface_num) 

所以我需要先发布接口。但我不知道 如何将 interface_num 正确传递给此命令:

ioctl(usbFD, USBDEVFS_RELEASEINTERFACE, &interface_num), 

如果没有定义,有什么函数可以找到这个接口号。 请帮我!谢谢。

【问题讨论】:

    标签: linux linux-kernel usb linux-device-driver usb-mass-storage


    【解决方案1】:

    文档说明:

    USBDEVFS_RELEASEINTERFACE

    这用于释放usbfs在接口上所做的声明,或者 隐含地或由于 USBDEVFS_CLAIMINTERFACE 调用,在 文件描述符已关闭。 ioctl 参数是一个整数持有 接口的编号(来自描述符的bInterfaceNumber);文件 此请求未更新修改时间。

    但这里似乎“参数是整数”仍然意味着应该传递一个指向整数的指针,就像你展示的那样。如果你有描述符,你可以找到接口号。

    【讨论】:

    • 什么意思?我正在编写一个应用程序来验证通过批量点读取/写入 USB 设备。我只使用了上面的 ioctl,但由于传递了参数,它无法工作。请让我知道以更正此问题?
    • 我在安全部分错了。重写了答案。
    • 是的,我已经阅读了这篇文章,但我仍然不知道如何获取 bInterfaceNumber?你知道吗?
    猜你喜欢
    • 1970-01-01
    • 2021-05-03
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 2013-11-19
    • 2011-01-06
    相关资源
    最近更新 更多