如何在运行时对我的程序创建的 .sys 文件设置文件版本

How do I set File Version during runtime on a .sys file that my program creates

我希望我的 C++ 程序创建一个空的 .sys 驱动程序文件,"File Version" 填充在 Windows 的文件详细信息中。该文件不需要任何其他内容,只需 "File Version"。我还希望能够更改文件版本或创建具有不同文件版本的新文件。我正在使用另一个程序读取此文件版本。
我该怎么做呢?有没有不涉及整个驱动制作过程的简单方法?

好吧,我找不到设置文件版本的功能,只能获取。 我最终创建了一个 hello world 驱动程序,并使用 Jesper 链接的方法(都是预处理器)设置了它的文件版本。这会编译一个带有版本号的 .sys。

我分析了 .sys 文件并发现了几个带有版本信息的地方。一个是 DWORD little-endian,这是 Windows 获取文件详细信息的内容。另一个非常接近它,存储为字符串。我不确定我正在连接的程序抓取了哪一个,所以我正在更改两者。更改字符串版本不会更改文件详细信息中的文件版本。 .sys 文件似乎具有敏感的文件结构。如果您更改与文件版本无关的内容,Windows 将不再根据版本正确解析文件。

Here are the bits I changed.字符串版本加一因为我在测试