реклама на сайте
подробности

 
 
> Windows: отключить кэширование чтения для USB MSD, или (еще лучше) заставить периодически обновлять кэш (делать рефреш)
Ruslan1
сообщение Sep 3 2012, 20:11
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Здравствуйте!
Собрал устройство, которое со стороны винды видно как USB Mass Storage Device.

Некоторые изменяемые данные видны со стороны Винды тоже как файлы (ну, например, текущее время контроллера).
Проблема в том, что однажды прочитав такой диск, винда больше вообще к нему не обращается (то есть не пытается читать секторы). Как результат- хотя файл обновляется (и его содержимое, и информация в соответствующем ему RootDir секторе), винда продолжает показывть старый файл из кэша диска.

Как-то с этим можно бороться? Еужно либо полностью отключить кэширование (чтобы все шло напрямую к диску), либо сделать принудительное обновление содержимого кэша, скажем, 1 раз в секунду.

Насколько я понял после недолгого гугления, проблема эта существует:
http://www.experts-exchange.com/Storage/Misc/Q_27825263.html
http://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, тогда устройство переподключится, но в винде это сопровождается кучей визуальных эффектов sad.gif

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

Помогите, пожалуйста. Кто чем может.....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ruslan1
сообщение Sep 4 2012, 13:16
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Upd:
Скажу больше: запись файла тоже ни к чему физическому не приводит. ничего не перечитывается.
Пример: записываю файл на "диск". Фактически файл никуда не записывается, в USB стоит заглушка "при записи секторов отвечать TRUE". Результат- винда показывает мне "диск" с "записанным" файлом. То есть фактически этого файла нет ни в служебных секторах FAT, ни, разумеется, в области данных, но для драйвера винды достаточно полученного "TRUE" от USB, не тратит сил даже на перечитывание каталога с диска, все крутится в кэше. (кэширование записи на диск в свойствах диска я отключил, но тут именно в кэшированном чтении проблема).
Мда.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 18:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016