Здравствуйте!
Собрал устройство, которое со стороны винды видно как USB Mass Storage Device.
Некоторые изменяемые данные видны со стороны Винды тоже как файлы (ну, например, текущее время контроллера).
Проблема в том, что однажды прочитав такой диск, винда больше вообще к нему не обращается (то есть не пытается читать секторы). Как результат- хотя файл обновляется (и его содержимое, и информация в соответствующем ему RootDir секторе), винда продолжает показывть старый файл из кэша диска.
Как-то с этим можно бороться? Еужно либо полностью отключить кэширование (чтобы все шло напрямую к диску), либо сделать принудительное обновление содержимого кэша, скажем, 1 раз в секунду.
Насколько я понял после недолгого гугления, проблема эта существует:
http://www.experts-exchange.com/Storage/Misc/Q_27825263.htmlhttp://www.embeddedrelated.com/groups/lpc2000/show/49476.phpна уровне написания своего софта проблема (вроде бы!) решаема:
http://msdn.microsoft.com/en-us/library/aa...8(v=vs.85).aspxНо вот так ли это? И нет ли каких-то вариантов инициировать обновление кэше со стороны USB MSD устройства, например, выдавая кучу ошибок в ответ на запросы Винды?
Или кто-то уже писал софт, позволяющий достучаться до секторов на USB MSD, минуя кэш? то есть специальная программка, делающая все нужное для обновления кэша?
Крайний вариант- это обрубить USB, тогда устройство переподключится, но в винде это сопровождается кучей визуальных эффектов

Пока что штатно нашел в винде включение-отключение кэширования записи, но про кэширования чтения видимо не подумали.

Помогите, пожалуйста. Кто чем может.....