Пейджинг с удаленного ресурса - PullRequest
1 голос
/ 23 января 2009

Допустим, у меня есть приложение, работающее на Windows XP, которое «запускается» с подключенного сетевого диска. Когда сбой страницы вызван выполнением этого приложения, и кодовая страница должна быть прочитана с диска, предполагая, что это не находится в файле подкачки, Windows выйдет в подключенный сетевой ресурс для чтения необходимой кодовой страницы с диска или будет сделать его копию локально при первом запуске? Я понимаю, что существуют различные типы ошибок страниц, но я специально спрашиваю о случае, когда код должен быть прочитан из файла на диске. В этом случае, поскольку образ приложения существует на удаленном общем ресурсе, я предполагаю, что обработчик сбоев страницы должен выйти в общий сетевой ресурс для получения кодовой страницы. Это правильно?

У меня есть приложение, которое работает таким образом, и периодически кажется, что оно «зависает» в системе, но система становится отзывчивой через короткий промежуток времени, иногда всего через несколько секунд, а в других случаях через 10-15 минут. В этой системе также установлено много продуктов A / V и DLP, и, следовательно, несколько драйверов фильтра TDI и драйверов фильтров файловой системы, которые, по-видимому, увеличат задержку при обработке ошибки страницы, особенно если код должен быть выгружен из процесса. изображение, которое существует на удаленном общем ресурсе.

Я читал Windows Internals, и в нем обсуждается обработка ошибок страниц, но я не вижу упоминаний о случае, когда речь идет об удаленном подключенном диске. Я предполагаю, что нужно выйти в общий сетевой ресурс, чтобы получить необходимую кодовую страницу, но я просто хочу быть уверен, что я прав. Если у кого-нибудь есть другие рекомендованные материалы, я бы с удовольствием их услышал. В настоящее время у меня есть отладчик ядра, подключенный к проблемной системе, так что я могу поймать его в действии, но, конечно, поскольку я подключил отладчик ядра и запустил его в течение 2 дней, я еще не видел проблему повторяться.

1 Ответ

0 голосов
/ 24 марта 2009

Я не уверен, что вопрос правильный.

выйдет ли Windows на подключенный сетевой ресурс, чтобы прочитать необходимую кодовую страницу из диск или он будет делать копию локально при первом запуске? "

Весь код должен находиться в локальной памяти для выполнения. Ошибка страницы на подключенном к сети диске приведет к тому, что сетевой ввод-вывод получит соответствующую страницу, которая будет загружена в локальную память и затем использована.

В этом случае, поскольку образ приложения существует на удаленном общем ресурсе, я предполагаю, что обработчик сбоев страницы должен выйти в общий сетевой ресурс, чтобы получить кодовую страницу. Это исправить? "

Е-е-е-е-е-е. Обработчик ошибок страницы не знает, что диск подключен к сети. Это выдаст файловую систему IRP. Драйвер сетевого сопоставления перехватит это и преобразует его в сетевой IRP. Таким образом, обработчик ошибок страницы просто делает свое обычное дело; он не знает, что ты делаешь вуду на заднем плане.

У меня есть приложение, которое работает таким образом, и оно периодически "зависает" система, но система становится отзывчивой через короткий промежуток времени, иногда всего несколько секунд, а в других случаях 10-15 минут. Эта система также имеет много A / V и продукты DLP, установленные на нем и, следовательно, несколько драйверов фильтра TDI и файловой системы драйверы фильтров, которые, казалось бы, увеличивают задержку при обработке ошибки страницы особенно если код должен быть выгружен из образа процесса, существующего на удаленном доля.

Э-э ... с таким большим количеством взлома ядра, я впервые подумал, что ваша установка Windows просто шаталась. Аудиовизуальные материалы являются ядом для Windows, и вы, кажется, имеете массу вещей, заделанных в ядро ​​- вы просите о проблеме, и кажется, что проблема пришла.

Наиболее простые объяснения наиболее вероятны; Учитывая количество вредоносного ПО, которое у вас здесь есть, скорее всего, Windows просто взломана. Вам не нужно более глубокое техническое объяснение!

...