Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何生成.exe驱动程序而不是.sys?_C_Kernel_Driver_Mode - Fatal编程技术网

C 如何生成.exe驱动程序而不是.sys?

C 如何生成.exe驱动程序而不是.sys?,c,kernel,driver,mode,C,Kernel,Driver,Mode,我是内核模式世界的新手。我曾尝试在Windows 7虚拟机中编写一个简单的“hello world”驱动程序,我正在使用WDK 7600.16385.1->x86免费编译环境进行编译,当编译完成时,生成的驱动程序是一个.sys文件扩展名,因此我想知道是否可以设置编译器以生成.exe文件,因此,用户可以通过双击可执行文件来运行它 我想也许,当我安装一些驱动程序时,“安装程序”是一个.exe文件,实际上它不是真正的驱动程序,它是一个在你的计算机上安装驱动程序(扩展名为.sys)的程序,因此.exe文

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

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

如果你能给我一些关于为Windoes生成驱动程序的信息,我将永远感激你


提前谢谢

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

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


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

一个
驱动程序
用于硬件和操作系统之间的通信,而不是用户双击并运行,“Hello world”驱动程序没有意义。也许在编写驱动程序之前,您应该进一步了解驱动程序是什么以及应该如何使用它们。:-)