gpt4 book ai didi

linux - 如何在 Linux 中检索隐藏设备的 wLength?

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:11 25 4
gpt4 key购买 nike

我想检索 wLength(可以由隐藏设备指定)。明确的答案可能是向设备发送 ctrl 信号。但是我通过下面的代码试了一下:

struct usbfs_ctrltransfer ctrl = {
.bmRequestType = LIBUSB_ENDPOINT_IN,
.bRequest = LIBUSB_REQUEST_GET_CONFIGURATION,
.wValue = 0,
.wIndex = 0,
.wLength = 1,
...
}
....
r = ioctl(fd, 0, &ctrl);
....

这段代码的结果只是一个错误值(我认为是 -1!)。我在 Debug模式下重新加载了 hid 模块(内核模块)(modprobe hid debug=100 --> 不要为这个大的调试级别 panic !)。在这种情况下,hid 会打印出 wLength 的真实值。

/build/buildd/linux-3.13.0/drivers/hid/usbhid/hid-core.c: submitting ctrl urb: Get_Report wValue=0x0100 wIndex=0x0001 wLength=64

我在linux kernel source code中跟踪了一下,发现在usb_get_intfdata中打印了这个信息。总而言之,我想知道在用户空间中是否存在相同的功能?

最佳答案

这个问题的答案是使用 udev。 ‌通过读取称为 bmAttributes 的特殊属性,您可以找到 I/O 的实际长度。使用以下代码阅读它:

 ....
udev_device_get_sysattr_value(dev, "bmAttributes")
....

关于linux - 如何在 Linux 中检索隐藏设备的 wLength?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28026838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com