如何让 USB 闪存驱动器显示/不显示为 CD 驱动器?

如何让 USB 闪存驱动器显示/不显示为 CD 驱动器?

最近有人给我买了一个小型 USB 闪存驱动器,作为广告噱头。当我插入它时,只出现一个驱动器:一个使用了 42kb 的 CD 驱动器(只是一个启动制造商网站的 autorun.inf 文件)。我知道U3驱动器也显示为 CD 驱动器,但它们的卸载实用程序仅适用于他们自己的驱动器。

我怎样才能让它显示为 USB 驱动器?相反,如果我想为自己做同样的事情,我该如何让它显示为 CD 驱动器?

我确信它可以以编程方式完成,否则卸载程序将无法工作。

答案1

这是在硬件中完成的。该设备被标识为包含两个子设备的复合设备 - 一个是 CD 驱动器,一个是可移动存储驱动器。

答案2

好的,这里有两个问题:

1)我怎样才能让它显示为 USB 驱动器?

这取决于设备本身。我可以看到 2 个选项。

  • 设备支持写入,但表示为 CDROM 且只读。在这种情况下,您只需调整设备描述符,即可获得可用的存储设备。
  • 设备未实现写入,因此无法执行任何操作。

通过调整设备描述符,我的意思是过滤驱动程序将接收设备描述符并将修改后的描述符传递给 Windows。编写过滤驱动程序并不难,您可以在驱动程序开发工具包中找到过滤驱动程序的示例。还需要对 USB 协议有基本的了解。

2) 相反,如果我想为自己做同样的事情,我该如何让它看起来像一个 CD 驱动器?

基本上相同,过滤驱动程序将更改设备描述符,以便 CDROM 设备识别,但另外,一旦 Windows 识别 CDROM,它将向设备发送额外的 SCSI 命令。理想情况下,设备将只返回不支持的命令,这是可以的,但根据我的经验,大多数设备都不够通用,行为将不确定。在这种情况下,您将需要额外的过滤驱动程序来捕获这些额外的命令并完成命令,而无需实际将它们发送到设备。

PS
我的回答假设您无权访问设备固件,如果您有权访问固件,则可以通过修改设备描述符并确保正确处理不支持的命令来轻松实现。

PPS
我没有提供任何资源链接,因为我认为你实际上不会实现这一点。如果我错了,请告诉我,我会提供相关资源。好的关联提供一般信息

答案3

嘿伙计,我已经多次将我的 USB FD 变成 2 个设备 CD 和 USB。你唯一需要做的就是下载 chipgenius 然后运行它,等待它识别你的 USB 然后转到http://flashboot.ru/files/搜索您的 usb 固件工具。如果您找到正确的工具,我相信不会有问题。我已经这样做了,并将我的 usb 变成了 hiren 启动 cdrom,从 bios 启动时,您不再选择您的 usb 名称,而是选择 usb-cdrom 选项。

答案4

闪存驱动器已使用 cdfs 文件系统进行分区和格式化,使用 dos 命令 diskpart 查看并删除\创建 fat fat32 或 ntfs 分区

相关内容