Я разрабатываю USB-накопитель. У меня аппарат в принципе рабочий (слишком тормозит, но это уже другой разговор). Что не работает так хорошо, как мне бы хотелось, так это обработка удаления устройства - не со стороны USB, а с USB-устройства, представляющего правильные ответы хосту, когда USB-устройство принудительно отключено (принудительно) удалением носителя.
Я пытался отвечать на запросы чтения/записи смысловым ключом NOT_READY с дополнительной информацией MEDIUM_NOT_PRESENT, но хосты, похоже, не реагируют на это так же, как на отсоединение USB-кабеля.
Каково ожидаемое поведение USB-устройств со съемными носителями, когда носитель выдергивается во время работы?
eject
, получая START_STOP_UNIT EJECT? В этом случае вы можете захотеть выдернуть LUN, вместо того, чтобы вести себя так, как будто носитель только что исчез. Можно ли поэкспериментировать с выдачей UNIT_ATTENTION с REPORTED_LUNS_DATA_HAS_CHANGED, а затем отказаться сообщать о LUN? - person Mike Andrews   schedule 20.04.2017