PE 中的 "Isolated Image" 属性是什么?

What is the "Isolated Image" attribute in a PE?

如果我查看可移植可执行文件的内部结构,在 IMAGE_OPTIONAL_HEADER 部分中有 IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 字段,正如 Microsoft 提到的那样 here 意思是:"The image is isolation aware, but should not be isolated."。但是,我不明白这里的意思或暗示是什么,也找不到更多相关信息。此选项也作为 Visual Studio 选项存在,并且在创建 Win32 应用程序项目时默认启用 (VS 2015 C++)。在我启用它之前,我想知道它对代码生成有什么作用。

如果有人知道,请分享。提前致谢。

它控制 Windows 加载器在加载进程时是否寻找 manifest:

/ALLOWISOLATION causes the operating system to do manifest lookups and loads.

/ALLOWISOLATION is the default.

/ALLOWISOLATION:NO indicates that executables are loaded as if there were no manifest, and causes EDITBIN Reference to set the IMAGE_DLLCHARACTERISTICS_NO_ISOLATION bit in the optional header's DllCharacteristics field. When isolation is disabled for an executable, the Windows loader doesn't try to find an application manifest for the newly created process. The new process doesn't have a default activation context, even if there is a manifest in the executable itself or if there is a manifest that has the name executable-name.exe.manifest.

https://msdn.microsoft.com/en-us/library/69xzf91x.aspx