这是场景。我在windows 8机器上/也在windows 7机器上试过这个。
我正在研究驱动程序(镜像驱动程序/远程显示驱动程序)。我应该说我要开始工作了,因为我被困住了。
所以我遵循了 KmdfSmall 的 MSDN 示例
http://msdn.microsoft.com/en-us/library/windows/hardware/hh439665(v=vs.85).aspx
我编译了驱动程序代码。远程调试也开始了。
我在主机上看不到任何调试消息(我已将寄存器 IHVDRIVER 设置为 0x8 我还将 DEFAULT 设置为 0xf 以便能够使用 DbgPrint
此外。我真正的目标是启动我的驱动程序即服务
http://www.codeproject.com/Articles/9504/Driver-Development-Part-1-Introduction-to-Drivers
我想在本地机器上测试它。我不想有一个目标和主机来调试。普通的老式单机。
问题
1)当服务通过CreateService
and启动驱动程序时OpenService
,它是调用 DriverEntry 函数还是等到有人用户级应用程序使用驱动程序。
2)当我运行应用程序以将驱动程序加载为服务器时, DbgPrintEx
假设在哪里打印 DebugView 或 WinDbg 或其他位置。
3)如果我正在使用
CreateService
我的 sys 文件必须在 windows/system32/drivers 文件夹中吗?我在某处读到 64 位机器CreateService
仅从系统文件夹加载。
4)当我将它作为服务启动时,我想在任务管理器上看到它
5)如果DriverEntry
被调用来初始化驱动程序,可以再次调用它还是必须等到它卸载?所以我加载我的驱动程序并忘记优雅地卸载它并再次运行我的程序它会调用DriverEntry
吗?
我知道这里有很多问题。提前致谢