Не отвечающий файл приводит к тому, что Windows Explorer перестает отвечать

931
Eric

Я столкнулся с проблемой при попытке сыграть в Titan Quest: Immortal Throne (легальная копия, купленная в Steam) на моем ноутбуке. Это HP Pavilion, Intel CORE i3, Windows 7 Home Premium x64, 4 ГБ ОЗУ, видеокарта Intel 4600. Это проблема только с игрой, но я не уверен, происходит ли сбой игры из-за того, что файл перестает отвечать на запросы или файл перестает отвечать на запросы из-за сбоя игры, но я склоняюсь к первому.

Играя где-то от 2 минут до часа, игра «не отвечает». Нет очевидного «триггера», который его вызывает, это произошло во время разговора с торговцами, борьбы с монстрами, бега по городу, просмотра деревьев умений и так далее. Я пытался дождаться игры, но она никогда не возвращается, поэтому я просто закрываю программу.

Я решил, что собираюсь покопаться в файлах сохранения, основываясь на моем подозрении, что у него были проблемы с взаимодействием с ними, что вызывало проблему. Я попытался скопировать папку сохранения игры, чтобы у меня была резервная копия, но всплывающее окно с небольшим прогрессом при копировании застряло в «Обнаружении предметов» с оставшимся временем, оставшимися предметами и скоростью, все отображало «расчет» и никогда не менялось. Нажатие на кнопку «Отмена» просто оставило ее на месте, сказав «Отмена», когда индикатор выполнения двигался, но ничего не происходит. Попытки удалить папку сохранения игры приводят к тому же самому. После перезапуска я смог скопировать сохраненные игры и продолжить.

Я открыл папку и начал удалять из нее части, чтобы попытаться изолировать проблемный файл. В папке сохранения игры (расположенной в области «Мои документы») есть папка для каждого персонажа, а в папке каждого персонажа есть файл «Player.chr», и любая попытка что-либо сделать с этим файлом приводит к тому, что проводник Windows перейти «не отвечает» после того, как игра ранее прошла «не отвечает». Если я перезагружаю свой компьютер, я могу связываться с файлом Player.chr, как вы это обычно делаете (копировать, перемещать, удалять и т. Д.).

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

Вещи, которые я пробовал: -Патч игры неофициальный патч (без изменений)

-Удаление сохранения в целом и запуск нового с другим персонажем (без изменений)

-Проверить целостность файлов с помощью Steam, 4 раза (проблем не обнаружено, без изменений)

-Установка и переустановка игры, 4 раза сейчас (без изменений)

-Использование программы «Unlocker», которую я уже установил на неотвечающем «Player.chr» (программа не находит проблем с файлом, но попытка удалить его с помощью программы приводит к тому, что программа перестает отвечать)

- Запуск Steam / Titan Quest в режиме совместимости с Windows XP и от имени администратора (без изменений)

-Изменение игры для запуска на нескольких ядрах (без изменений)

-Использование «Выход из системы» вместо перезапуска после сбоя (файл все еще не отвечает после входа в систему)

-Пробовал играть на более низких графических настройках (без изменений)

-Использование версии игры, установленной с дисков, а не загруженной через Steam (по какой-то причине файлы сохранения называются по-разному после воспроизведения их после установки диска, но тот же результат)

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

Любые предложения или помощь будет принята с благодарностью. Я уже пробовал 5 технических форумов и пока не получил серьезного ответа. У меня есть друзья, которые в настоящее время играют в нее и говорят мне, насколько она хороша, но мне было трудно наслаждаться или добиваться реального прогресса в данной проблеме.

1
Добро пожаловать, не могли бы вы попытаться сделать свой вопрос короче или хотя бы указать основную информацию, прежде чем углубляться в детали? Vlastimil Ovčáčík 8 лет назад 0
@Eric Вы пытались проверить диск на наличие ошибок? Сколько файлов существует в папке «Player.chr»? Leet-Falcon 8 лет назад 0
@Vlastimil Извините, я старался быть максимально подробным. Я в основном ищу способ выяснить, почему файл перестает отвечать на запросы, или способ сделать файл активным снова, который не просто перезагружает мой компьютер каждый раз. Eric 8 лет назад 1
@ Leet-Falcon Проверить диск на наличие ошибок с помощью CheckDisk? Я этого не делал, это относительно новый ноутбук, поэтому я не думал, что это может быть проблемой, тем более что он изолирован от этого файла и происходит только после того, как программа перестает отвечать на запросы. Папка для сохранения содержит несколько файлов, папку для резервного копирования, папку со всеми сохраненными картами, файл «Player.chr» и некоторые файлы для инвентаря в игре. Я проверил каждый файл вручную, и только «Player.chr» (или в версии диска он называется «PlayerTmp0000.chr») не отвечает, все остальные файлы, с которыми я могу взаимодействовать. Eric 8 лет назад 0

1 ответ на вопрос

1
Vlastimil Ovčáčík

When a program uses a file, it will obtain handle from operating system, which will grant exclusive access to the file. You may want to list all handles issued on your file to get better understanding of the problem.

I would recommend Process Explorer by Sysinternals which can

  • list all handles of a process (Ctrl+H)
  • list all processes that handle a file (Ctrl+F)

Or you could record a time period with Process Monitor, which also reveals even more details (of what is happening with the file).

Solution: Process Monitor revealed another process working with game files while the game was running. SearchProtocolHost.exe attempted to create the file PlayerTmp0000.chr in the same moment as the game. This process is related to Windows Search service, and disabling it solved the problem. For long term solution, exclusion rule for Windows Search was created.

Я наблюдал за Process Explorer во время игры. Кажется, что он использует файл Player.chr только изредка, открывая его, а затем закрывая в течение максимум 2 секунд (мне даже не хватает времени, чтобы навести на него мышь и щелкнуть по нему правой кнопкой мыши в Process Explorer). Я предполагаю, что это происходит, когда игра автоматически сохраняется. За исключением случаев, когда это происходит, файл Player.chr, кажется, не остается открытым, поэтому, когда я ищу дескрипторы, он не появляется. Если файл в настоящее время не используется, есть ли способ просмотреть выданные ему дескрипторы, чтобы я мог их перечислить? Спасибо за помощь. Eric 8 лет назад 0
@Eric, я бы посмотрел, какие процессы используют файл, а не то, что обрабатывает игра. Смотрите обновленный ответ. Vlastimil Ovčáčík 8 лет назад 0
В моей версии программы ctrl + f открывает только окно поиска дескриптора / DLL, и поскольку файл Player.chr никогда не активен в течение более доли секунды, он ничего не находит для него. Мне удалось щелкнуть правой кнопкой мыши на ручке после того, как она открылась, но поскольку к тому времени, когда я мог щелкнуть по ней, она снова была закрыта, я не смог просмотреть свойства ручки. Eric 8 лет назад 0
@Eric, я вижу, вы можете записывать, какие процессы работают с файлом, с помощью Process Monitor, поэтому вы не зависите от скорости вашего пальца ;-) Vlastimil Ovčáčík 8 лет назад 0
В момент сбоя SearchProtocolHost.exe попытался создать файл PlayerTmp0000.chr, но результат, указанный в Process Monitor, просто пуст, после чего TQIT.exe (игра) отменил попытку создания того же файла. Я сохранил несколько событий до и после крушения, но это единственное, что выделяется для меня, я здесь над головой. Eric 8 лет назад 1
@ Эрик, это может быть. Я бы запустил `services.msc` и полностью отключил службу Windows Search * и перезагрузился. Если это помогает, мы можем создать [правило исключения] (http://superuser.com/questions/591406/how-do-i-disable-indexing-in-a-specific-directory-across-multiple-platforms) и запустить сервис снова. Vlastimil Ovčáčík 8 лет назад 0
Итак, я потратил около 6 часов на игру в течение последних двух дней после отключения службы поиска Windows, и игра работала нормально для меня, так что похоже, что это была проблема. Применимы ли к этому инструкции в ссылке «правило исключения» в вашем ответе, или мне нужно что-то более конкретное? Eric 8 лет назад 1
@ Эрик, приятно это слышать. Правило исключения должно сработать, вам просто нужно исключить папку, содержащую файл `Player.chr`. И тогда вы можете снова включить службу * Windows Search *. Vlastimil Ovčáčík 8 лет назад 0
Хорошо, я получил исключение, и оно, похоже, продолжает работать должным образом. Спасибо за терпение и большое спасибо за помощь! Eric 8 лет назад 0