Пейджинг с удаленного ресурса
Допустим, у меня есть приложение, работающее в Windows XP, которое "запускается" с подключенного сетевого диска. Когда сбой страницы вызван выполнением этого приложения, и кодовая страница должна быть прочитана с диска, предполагая, что это не находится в файле подкачки, Windows выйдет в подключенный сетевой ресурс, чтобы прочитать необходимую кодовую страницу с диска, или будет сделать его копию локально при первом запуске? Я понимаю, что существуют различные типы ошибок страниц, но я специально спрашиваю о случае, когда код должен быть прочитан из файла на диске. В этом случае, поскольку образ приложения существует на удаленном общем ресурсе, я предполагаю, что обработчик сбоев страницы должен выйти в общий сетевой ресурс для получения кодовой страницы. Это правильно?
У меня есть приложение, которое работает таким образом, и периодически кажется, что оно "зависает" в системе, но система становится отзывчивой через короткий промежуток времени, иногда всего через несколько секунд, а в других случаях через 10-15 минут. В этой системе также установлено множество продуктов A/V и DLP, и, следовательно, несколько драйверов фильтра TDI и драйверов фильтров файловой системы, которые, по-видимому, увеличат задержку при обработке ошибки страницы, особенно если код должен быть выгружен из процесса. изображение, которое существует на удаленном ресурсе.
Я читал через Windows Internals, и в нем обсуждается обработка ошибок страниц, но я не вижу упоминаний об этом случае при работе с удаленным подключенным диском. Я предполагаю, что он должен пойти к общему сетевому ресурсу, чтобы получить необходимую кодовую страницу, но я просто хочу быть уверен, что я прав. Если у кого-нибудь есть другие рекомендованные материалы, я бы с удовольствием их услышал. В настоящее время у меня есть отладчик ядра, подключенный к проблемной системе, так что я могу поймать его в действии, но, конечно, поскольку я подключил отладчик ядра и запустил его в течение 2 дней, я еще не видел проблему повторяться
1 ответ
Я не уверен, что вопрос правильный.
выйдет ли Windows на подключенный сетевой ресурс, чтобы прочитать необходимую кодовую страницу с диска, или она будет делать ее локальную копию при первом запуске?"
Весь код должен быть в локальной памяти, чтобы быть выполненным. Ошибка страницы на подключенном к сети диске приведет к тому, что сетевой ввод-вывод получит соответствующую страницу, которая будет загружена в локальную память и затем использована.
В этом случае, поскольку образ приложения существует на удаленном общем ресурсе, я предполагаю, что обработчик сбоев страницы должен выйти в общий сетевой ресурс для получения кодовой страницы. Это правильно?"
Ye-eesss. Обработчик ошибок страницы не знает, что диск подключен к сети. Это выдаст файловую систему IRP. Драйвер сетевого сопоставления перехватит это и преобразует его в сетевой IRP. Таким образом, обработчик ошибок страницы просто делает свое обычное дело; он не знает, что ты делаешь вуду на заднем плане.
У меня есть приложение, которое работает таким образом, и периодически кажется, что оно "зависает" в системе, но система становится отзывчивой через короткий промежуток времени, иногда всего через несколько секунд, а в других случаях через 10-15 минут. В этой системе также установлено множество продуктов A/V и DLP, и, следовательно, несколько драйверов фильтра TDI и драйверов фильтров файловой системы, которые, по-видимому, увеличат задержку при обработке ошибки страницы, особенно если код должен быть выгружен из процесса. изображение, которое существует на удаленном ресурсе.
Хм, с таким большим количеством взлома ядра, я сначала подумал, что ваша установка Windows просто не работает Аудиовизуальные материалы - это яд для Windows, и вы, кажется, добавили в ядро кучу вещей - вы напрашиваетесь на неприятности, и кажется, что проблема настала.
Самые простые объяснения наиболее вероятны; учитывая количество вредоносного ПО, которое у вас здесь есть, скорее всего, Windows просто взломана. Вам не нужно более глубокое техническое объяснение!