0

我刚刚注意到我的应用程序在注册表中有一个名为“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),但它们都不存在。

我只得到 4 个搜索“DelayFreeSizeMB”的谷歌结果,但没有一个有用。

4

1 回答 1

0

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

访问基础/堆/属性

DelayFreeSizeInMB

功能可能是:

  • 最近释放的内存不会归还给堆。
  • 相反,它将填充一个图案。
  • 破坏模式可用于识别悬空指针和双重释放

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

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

于 2021-12-14T15:58:03.783 回答