Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Как отключить кэширование файлов в NT?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Zufyxe
Гость





СообщениеДобавлено: Пн Июл 26 2004 07:21    Заголовок сообщения: Как отключить кэширование файлов в NT? Ответить с цитатой

Практически во всех NT-ях драйвер файловой системы при открытии файла кэширует содержимое для ускорения доступа. Таким образом, при чтении из файла, который ранее использовался другим приложением, мы получаем содержимое кэша вместо содержимого диска. Т.е. физического чтения с диска не производиться. То же касается и записи. Так вот, есть ли какие нибудь параметры (флаги) для CreateFile/NtCreateFile, позволяющие работать с файлом на диске не задействуя cache manager? Или может другие варианты?
Вернуться к началу
Turkish



Зарегистрирован: 25.07.2004
Сообщения: 15
Откуда: из-за горизонта

СообщениеДобавлено: Пн Июл 26 2004 11:37    Заголовок сообщения: Ответить с цитатой

Конкретных флагов указать не могу, но по-моему это описано у Рихтера, ну или посмотреть собственно в winbase.h.

Можно попробовать также такой вариант - работать с проекцией файла. Там кеширование страниц отключить точно можно.
_________________
homesite: http://www.320-8080.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Zufyxe
Гость





СообщениеДобавлено: Пн Июл 26 2004 23:33    Заголовок сообщения: Ответить с цитатой

Вариант с проекцией отпадает сразу, поскольку Image - это уже и есть отображение файла в памяти. Все операции с Image-ами кэшируются (то есть выполняются через память) по определению. Кроме того, один образ файла в физической памяти может быть одновременно отображен на адресное пространство сразу нескольких процессов Sad Конечно, можно задать атрибуты таким образом, чтобы запретить совмесный доступ к проекции, но тогда теряется смысл всей задачи: организовать чтение из файла минуя кэш файловой системы, и при этом не ограничевая использования файла другими приложениями.
Далее, для проекции файла можно отключить кэширование страниц памяти. Но, дело в том, что кэширование страниц (paging) и cached IO (read ahead/leazy write) - совершенно независимые и различные механизмы.

Насчет Рихтера - спасибо за идею Smile , обязательно посмотрю.
Вернуться к началу
GeX



Зарегистрирован: 03.01.2004
Сообщения: 60
Откуда: Россия, Иркутск

СообщениеДобавлено: Ср Июл 28 2004 03:42    Заголовок сообщения: Ответить с цитатой

Есть функции, прямой записи на диск, но насколько я помню чтобы ими пользоваиться надо чтобы процесс имел имел привилегии ring 0, т.е. привилегии уровня ядра. Хотя конкретно с этим не разбирался, точно сказать не могу. И вообще, зачем тебе это надо? Кэш хорошая штука, может помнишь как в старом добром MS-DOS-е копируются или удаляются большие кучи файлов без SmartDrive-а Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...