USB windows xp最终USB访问问题

时间:2010-05-28 05:11:01

标签: windows-xp usb

我基本上理解你是C ++的人,请不要因为我用Delphi写作而分心。

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

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

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

我缺少的是一个小方向

  1. 固件编程器能否在连接的USB Micro芯片内写入友好名称? (我正在考虑更进一步识别设备,或者这是为了帮助识别大容量数据传输设备,如记忆棒和相机)

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

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

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

  5. IoCreateDevice可以为我做什么以及如何将其用于该任务

  6. 这种双向连接状态和系统锁定情况非常令人担忧。 最近有人读过这个主题吗?

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

    1. 从其他所有内容中识别开发微控制器

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

    3. 没有锁定传输数据

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

      我理解当windows xp不是时,所有USB都是ANSI,而.Net都是关于ANSI的 (多么浪费记忆)

      我计划在以后将这个项目继续用作.net作为补充。

      MSDN为我提供了结构和功能,以及什么应该链接到什么,但对它们的用途很少说。

      我的语言可用的东西德尔福的定价超过它需要大幅降价。

1 个答案:

答案 0 :(得分:0)

我找到了注册表DEVICE_INSTALL_STATE: -

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

我问的问题是更新后的响应有多快,以及它们是否是更好的方法

Lex Dean