Mass Storage устройство работает на уровне секторов, а не на уровне файловой системы. Поэтому достаточно запрограммировать устройство так, чтобы при попытке стирания или записи секторов вашего "нестираемого" файла девайс возвращал код ошибки WRITE_PROTECTED.
Некоторая "лёгкая" кривизна этого решения заключается в том, что диск нельзя будет отформатировать в другую ФС, скажем, EXT3. Точнее сказать, оно будет разрушительным для устройства - форматирование начнётся, часть FAT таблиц будет уничтожена, а когда форматирование дойдёт до залоченных секторов - будет ошибка и останов форматирования.
Наиболее прямое решение - это аппаратно разбить диск на 2 раздела, запретив модификацию таблицы разделов. Один из разделов целиком сделать Read-Only и записывать туда файлы только какой-нибудь спецутилитой своим, отдельным от MS, набором команд.
Ещё вариант - сделать не Mass Storage, а
MTP устройство, которое оперирует уже не секторами, а файлами, и может как угодно манипулировать файлами без ведома хоста - добавлять, стирать, запрещать стирание и т. п. Хост получает только уведомления об этом. Поэтому вновь появившийся из мозгов устройства файл будет тут же виден в проводнике хост-компьютера. Также ничто не мешает тупо игнорировать команды стирания определённых файлов.
Недостаток только в том, что встроенная поддержка MTP устройств началась, если не ошибаюсь, только с Windows 7, а в Win XP нужно отдельно доустанавливать драйвер.
"... часами я мог наблюдать, как люди работают." (М. Горький)