DelayFreeSizeMB 如何改变我的应用程序的行为?

How does DelayFreeSizeMB change the behavior of my application?

我刚刚注意到我的应用程序在

下的注册表中有一个名为“DelayFreeSizeMB”的 DWORD 注册表项,其值为 64
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\MyApp.exe

此注册表项对我的应用有何作用?我知道 Windows 会在程序开始时读取“图像文件执行选项”,它可能会改变 Windows 处理应用程序的方式。通常,此密钥定义 GFlags (REG_SZ GlobalFlag) 和应用程序验证程序设置 (REG_DWORD VerifierFlags),但其中 none 在那里。

我只得到 4 google 个搜索“DelayFreeSizeMB”的结果,其中 none 个很有帮助。

我在硬盘上搜索了包含这个词的可执行文件,verifier.exe(应用程序验证程序)是“罪魁祸首”。玩过之后,发现有一个 属性 用于 Basics / Heaps 的名称完全相同:

功能可能是:

  • 最近释放的内存将不会返回堆。
  • 而是用一种模式填充。
  • 损坏的模式可用于识别悬挂指针和双重释放

因此此设置对 Windows 堆管理器有影响。从名称来看,它是为此目的保留的内存量。

如果该注册表值没有附带 REG_DWORD VerifierFlags,它可能不会执行任何操作。