为什么Windows驱动程序';s条目名称为;汽车租赁公司;?(也可以是WinMain/DllMain)

为什么Windows驱动程序';s条目名称为;汽车租赁公司;?(也可以是WinMain/DllMain),windows,driver,entry-point,Windows,Driver,Entry Point,为什么Windows驱动程序的条目名应为“DriverEntry”?Windows不能使用PE头或调用main()函数初始化驱动程序来找到驱动程序的入口点吗 同时 在WinMain的情况下 我认为main()或MainCRTSetup()应该是main()或MainCRTSetup(),除非我们更改编译器设置,让编译器知道这是我们程序的条目 然而,这是为编译器设计的,不是吗?为什么Windows要求驱动程序的输入函数名为DriverEntry?Microsoft的人员决定.sys文件的输入点为D

为什么Windows驱动程序的条目名应为“
DriverEntry
”?Windows不能使用PE头或调用
main()
函数初始化驱动程序来找到驱动程序的入口点吗

同时

WinMain
的情况下

我认为
main()
MainCRTSetup()
应该是
main()
MainCRTSetup()
,除非我们更改编译器设置,让编译器知道这是我们程序的条目


然而,这是为编译器设计的,不是吗?为什么Windows要求驱动程序的输入函数名为
DriverEntry

Microsoft的人员决定.sys文件的输入点为DriverEntry,这是添加到PE头中的值


我认为他们使其与windows EXE或DLL不兼容,以确保不能使用EXE代替.SYS

它是回调,而不是入口点。回调只使用一次,因此包含回调的代码段是可丢弃的。当函数采用非标准参数时,使用非标准名称通常是一个好主意。