Windows内核编程(三) | 您所在的位置:网站首页 › 如何用电脑编程驱动小车运行 › Windows内核编程(三) |
内核驱动运行与调试
驱动的运行
驱动的运行通过服务来实现。 微软规定,驱动文件必须经过微软的数字签名后,才可以运行在64位系统上,如果把没有经过签名的驱动直接放在64位操作系统中运行,结果是驱动加载失败,失败原因是驱动没有签名。 解决方法: 把操作系统配置成调试模式,调式模式的系统,默认允许未签名的驱动运行l临时关闭系统驱动签名校验,在开机时修改启动参数对于Windows 7操作系统来说,开机时可以在键盘上按 F8 键,选择禁用驱动程序签名强制 对于Windows 10 系统来说,可以在高级重启中设置,具体操作为: 开始菜单 → 设置 → 更新安全 → 恢复,在高级启动下点击 立即重新启动 按钮,然后在出现的界面中选择 疑难解答 → 高级选项 → 启动设置 ,点击 重启 按钮,系统开始重启,在启动过程中会显示启动选项,在键盘上输入数字 7,即选择 禁用驱动程序强制签名。
把驱动程序放在系统的C盘下,以管理员权限运行cmd(命令提示符),在cmd中输入注册驱动的命令: sc create MyDriver binPath="C:\MyDriver.sys" type= kernel start= demand
sc 命令内部也是通过服务的 API 对服务进行注册,与直接通过API创建服务的效果相同,通过sc命令,可以省区编写注册服务的代码。 成功创建后,使用sc命令来启动服务,命令如下: sc start MyDriver 其中MyDriver为服务名,对应sc create后面的名字,这个命令的功能等同于StartService函数,服务成功运行后,命令行上显示创建的信息 驱动运行之后,没有在代码中打印的调试信息没有显示,使用工具DbgView.exe进行调试,下载地址 成功执行停止命令后,保持DbgView不关闭,再次执行sc start MyDriver,可以在DbgView的窗口中看到以下日志 |
CopyRight 2018-2019 实验室设备网 版权所有 |