Использую консольную VMP 3.8.7.2001 (проблема была и с 3.8.5/3.8.6, другие не проверял) на Windows Server 2022.
Запускаю сразу несколько (4-7) процессов одновременно для обработки нескольких файлов.
Иногда возникали ошибки в вмп о невозможности открытия какого-то моего файла: [[VMProtect_Con.exe]] "[Ошибка] Невозможно открыть файл \"path\\to\\file.dll\""
Проблема появлялась случайно и не уходила сама по себе. Иногда помогал перезапуск родительской программы-менеджера, чаще - только перезапуск всего сервера.
Как оказалось, проблема появляется, если удалить папку «%LocalAppData%\Temp\<номер_используемый_в_вмп>», где появляются файлы vmpXXX.tmp при работе процессов. Вмп почему-то пересоздает эту папку только после перезагрузки сервера.
На сервере мало пространства на диске, оно часто забито на 90+%, поэтому включена авто-очистка диска, и файлы в temp регулярно чистятся. С этим и связываю случайное проявление проблемы ни с того, ни с сего.
Вопрос: можно ли как-то улучшить ситуацию с использованием временных файлов? Проверять наличие нужной папки, и если ее нет - создавать при каждом запуске процесса вмп? Да и улучшить репорт ошибок тоже не помешало бы, а то сейчас просто пишет, что не может открыть какой-то мой файл, хотя это неправда.
Прикрепляю лог ProcessMonitor одного из процессов, обратите внимание на ошибку NAME_NOT_FOUND при доступе к "C:\Users\USERNAME\AppData\Local\Temp\1":
Code: Select all
<event>
<ProcessIndex>144</ProcessIndex>
<Time_of_Day>8:34:11,5278705</Time_of_Day>
<Process_Name>VMProtect_Con.exe</Process_Name>
<PID>336</PID>
<Operation>CreateFile</Operation>
<Path>C:\Users\USERNAME\AppData\Local\Temp\1</Path>
<Result>NAME NOT FOUND</Result>
<Detail>Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a</Detail>
</event>