【问题标题】:Can I use a USB pen drive with libusbdotnet我可以使用带有 libusbdotnet 的 USB 笔式驱动器吗
【发布时间】:2013-11-27 09:24:23
【问题描述】:

我刚刚开始使用 libusbdotnet。我已经从http://libusbdotnet.sourceforge.net/V2/Index.html下载了示例代码。

我正在使用 JetFlash 4GB 闪存驱动器(为此驱动器添加了 libusb-win32 过滤器驱动程序)

ShowInfo 代码完美运行,我可以通过两个端点查看我的设备信息。以下是来自 pastebin 的设备信息

http://pastebin.com/2Jdph6bY

但是,ReadOnly 示例代码不起作用。

http://pastebin.com/hNZaEt8N

我的代码与 libsubdotnet 网站上的代码几乎相同。我只更改了 UsbEndpointReader 使用的端点。 我已将其从 Ep01 更改为 Ep02,因为我读到第一个端点是用于配置、访问控制和类似内容的控制端点。

UsbEndpointReader reader = MyUsbDevice.OpenEndpointReader(ReadEndpointID.Ep02);

我总是收到“没有更多字节!”的消息。

我以为这是因为没有数据,所以我使用了ReadWrite示例代码。

http://pastebin.com/NiN5w9Jt

但在这里我也得到“没有更多的字节!”消息。

有趣的是,这条线

ec = writer.Write(Encoding.Default.GetBytes(cmdLine), 2000, out bytesWritten);

执行没有错误。

笔式驱动器可以用于读写操作吗?还是代码有问题?

【问题讨论】:

    标签: libusb libusbdotnet


    【解决方案1】:

    USB 拇指驱动器实现了 USB 大容量存储设备类,它是 SCSI 的子集。规格为here

    仅仅从端点读取你不会得到任何有意义的东西——你必须发送适当的命令才能得到任何响应。

    您尚未选择简单的设备类来开始探索 USB - 您可能最好从更简单的东西开始 - HID 类设备,也许是(鼠标/键盘),尽管 Windows 确实增强了鼠标和键盘的安全性,这可能阻止您安装过滤器。

    如果您在 USB 记忆棒上的文件系统被 Windows 挂载为驱动器时干预它,您几乎肯定会遇到缓存一致性问题,除非您非常小心您允许 Windows 执行的访问类型.

    【讨论】:

    • libusbdotnet 库无法识别任何 USB 设备(鼠标、手机、闪存驱动器)除非我安装了 libusb win32 过滤器驱动程序。我担心如果我在其上安装过滤器驱动程序会损坏我的默认驱动程序,所以我还没有尝试使用鼠标。 我只是想测试读/写是否OK,我应该使用什么设备?
    • 过滤器驱动是通过注册表项安装的,如果您在设备管理器中删除该设备并重新检测到它,它将恢复。所以你不应该太担心实验。你有 USB 串行适配器吗?您也许可以对此进行试验,尽管该协议可能不容易找到文档。不过,HID 必须是最容易开始的。
    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多