Хорошо, здесь есть 2 вопроса:
1) Как сделать так, чтобы он отображался как USB-накопитель?
Это зависит от самого устройства. Я вижу 2 варианта.
- Устройство поддерживает запись, но представляет собой CDROM и только для чтения. В этом случае вам просто нужно настроить дескриптор устройства, и вы получите работающее устройство хранения.
- Устройство не осуществляет запись и ничего не может быть сделано.
Под настройкой дескриптора устройства я подразумеваю драйвер фильтра, который получит дескриптор устройства и передаст измененный в Windows. Написание драйвера фильтра не очень сложное, и вы можете найти примеры драйвера фильтра в комплекте разработки драйверов. Также потребуется базовое понимание протокола USB.
2) И наоборот, если бы я хотел сделать то же самое для себя, как бы я сделал его в качестве дисковода компакт-дисков?
По сути, драйвер фильтра, который изменит дескриптор устройства для распознавания устройством CDROM, но дополнительно, как только Windows распознает CDROM, он отправит дополнительные команды SCSI на устройство. В идеале устройство просто возвращает неподдерживаемую команду, и все в порядке, но, по моему опыту, большинство устройств недостаточно универсальны, и их поведение будет неопределенным. В этом случае вам понадобится дополнительный драйвер фильтра, который перехватит эти дополнительные команды и выполнит команды, фактически не отправляя их на устройство.
PS
Мой ответ предполагает, что у вас нет доступа к прошивке устройства. Если у вас есть доступ к прошивке устройства, это действительно легко сделать, изменив дескриптор устройства и убедившись, что неподдерживаемые команды обрабатываются правильно.
PPS
Я не даю никаких ссылок на ресурсы, так как не думаю, что практически вы собираетесь это реализовать. Если я ошибаюсь, дайте мне знать, и я предоставлю соответствующие ресурсы. Хорошо, одна ссылка с общей информацией