【问题标题】:How to generate .exe drivers instead than .sys?如何生成 .exe 驱动程序而不是 .sys?
【发布时间】:2012-11-07 03:19:22
【问题描述】:

我是内核模式世界的新手。我尝试在 Windows 7 虚拟机中编写一个简单的“hello world”驱动程序,我正在使用 WDK 7600.16385.1 -> x86 Free Build Environment 进行编译,当它编译时,生成的驱动程序是一个 .sys 文件扩展名,所以我想知道是否可以设置编译器以生成 .exe 文件,以便用户可以通过双击可执行文件来运行它。

我想也许,当我安装一些驱动程序并且“安装程序”是一个 .exe 文件时,实际上它并不是真正的驱动程序,它是一个在您的计算机上安装驱动程序(以 .sys 扩展名)的程序计算机,所以 .exe 文件只是安装程序,而不是驱动程序本身。但我不确定这是否属实。

如果您能给我一些有关为 Windoes 生成驱动程序的信息,我将永远感激不尽!

提前致谢!

【问题讨论】:

  • driver用于硬件和操作系统之间的通信,不能被用户双击运行,“Hello world”驱动没有意义。在尝试编写驱动程序之前,也许您应该更多地了解驱动程序是什么以及应该如何使用它们。 :-)

标签: c kernel driver mode


【解决方案1】:

您正在查看的.exe 文件确实是安装程序。有许多工具可用于创建安装程序; NSIS 是比较流行的选项之一。

【讨论】:

    【解决方案2】:

    .exe 标记 Windows 用户模式的可执行文件。用户模式和内核模式“可执行文件”的格式有很大不同。特别是,没有用户运行内核可执行文件之类的东西。用户模式不能直接访问内核驱动程序;仅允许通过操作系统定义的接口进行通信,即用户模式组件必须执行专用的操作系统调用,该调用将由操作系统路由到内核组件。内核模式和用户模式之间还有很多区别,但这一特定的区别解释了为什么用户无法(也不应该)运行内核驱动程序。

    至于你的第二个问题,是的,这些.exe 文件是安装程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      • 2011-10-11
      • 2023-01-28
      • 1970-01-01
      • 2015-06-09
      • 2012-09-21
      • 2018-02-17
      相关资源
      最近更新 更多