【问题标题】:USB windows xp final USB access issuesUSB windows xp final USB访问问题
【发布时间】:2011-02-24 23:40:23
【问题描述】:

我基本上了解你们 C++ 人,请不要因为我用 Delphi 编写而分心。

我有一个稳定的 USB 列表方法,可以访问我的所有 USB 设备 我得到了devicepath,这个结构:

TSPDevInfoData = packed record
  Size: DWORD;
  ClassGuid: TGUID;
  DevInst: DWORD; // DEVINST handle
  Reserved: DWord;
end;

我从我的DevicePath 成功获得了我的ProductIDVenderID 列出当时连接到计算机的所有 USB 设备 这使我能够以稳定的方式访问每个设备的注册表数据。

我缺少的是一点方向

  1. 是否可以通过固件编程器将友好名称写入连接的 USB 微芯片中? (我想这样做是为了进一步识别设备,还是帮助识别记忆棒和相机等批量数据传输设备)

  2. 我可以使用 SPDRP_REMOVAL_POLICY_OVERRIDE 来重置这些策略吗 我还能用注册表详细信息做什么。

  3. 识别某人何时拔出设备 程序正在使用(在 windows XP 标准中) 我使用了一个没有响应的记录在案的 windows 事件。 我可以读取注册表值以确定它是否仍然连接?

  4. 使用 CreateFileA (DevicePath) 发送和接收数据 我读过有人在数据传输过程中拔掉其难以清除的资源。

  5. IoCreateDevice 能为我做什么以及如何使用它来完成这项任务

这两种方式的连接状态和系统锁定情况非常令人担忧。 最近有人读过关于这个主题的任何东西吗?

我的目标是 1.列出连接的USB设备

  1. 从其他一切中识别开发中的微控制器

  2. 以稳定、快速的方式发送和接收数据,达到控制器的极限

  3. 无锁传输数据

注意我没有使用任何服务包

我知道当 windows xp 不是 USB 时,USB 是 ANSI 的,而 .Net 是关于 ANSI 的 (太浪费内存了)

我计划在以后将这个项目继续添加到 .net 中。

MSDN 给了我结构和函数,以及什么应该链接到什么好,但很少说明它们的用途。

以我的语言提供的 Delphi 价格过高,需要大幅降价。

【问题讨论】:

标签: windows-xp usb


【解决方案1】:

我发现注册表 DEVICE_INSTALL_STATE 是:-

InstallStateInstalled = 0, InstallStateNeedsReinstall = 1, InstallStateFailedInstall = 2, InstallStateFinishInstall = 3

我问更新响应的速度有多快,以及他们是否是更好的方法

莱克斯·迪恩

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多