В настоящее время я работаю над простым уровнем виртуализации приложений, виртуализируя все операции с файлами / реестром на уровне NtDll.dll.
Но когда я запускаю приложение из виртуального пути, и если виртуальный путь не существует на реальном узле, приложение не запускается.
Вот пример
Если базовый путь виртуальной файловой системы - H: \ VirtualFS, а H: \ VirtualFS \ c \ folder \ file.exe соответствует c: \ folder \ file.exe.
Если я запускаю этот exe-файл из уровня виртуализации и если в хост-системе есть папка c: \ folder, то я могу правильно запустить file.exe.
Если в операционной системе хоста отсутствует папка c: \ folder, запуск приложения завершится неудачно из-за ошибки SxS, и вот ошибка
Generate Activation Context failed for c:\folder\file.exe. Reference error message: The operation completed successfully.
Я даже пытался переопределить функцию RTCreateProcessParameters, чтобы отобразить виртуальный путь в реальный путь, но все еще сохраняется та же ошибка.
Любая помощь / руководство будет действительно полезным. Спасибо.