visual studio 2019 + WinDDK 7600.16385.0编写驱动

驱动版本WinDDK 7600.16385.0

IDE:visual studio 2019

新建空白项目

配置类型从exe改为生成文件

 配置完后,配置属性中就只剩基础配置了,没有C/C++、链接器等配置,因为驱动程序需要通过ddk编译,所以其他配置也是没用,自己配置编译程序的命令行即可

添加makefile和source文件

makefile是默认的,不需要修改的

#
# DO NOT EDIT THIS FILE!!!  Edit .\sources. if you want to add a new source
# file to this component.  This file merely indirects to the real make file
# that is shared by all the  components of the Windows NT DDK
#

!INCLUDE $(NTMAKEENV)\makefile.def

source文件主要指定c文件和目标名称

# $Id$
TARGETNAME=..\testDriver
TARGETPATH=obj
TARGETTYPE=DRIVER

# Create browse info
#BROWSER_INFO=1
#BROWSERFILE=<some path>

TARGETLIBS=

# Additional defines for the C/C++ preprocessor
C_DEFINES=$(C_DEFINES)

SOURCES=main.c \

TARGETNAME是相对于编译输出目录的,project目录\objfre_win7_amd64\amd64

配置编译命令行

 理论上需要4个配置的,不同debug/release+win32/x64,对应4个bat文件,例如x64 release版本

echo build x64 release
call ddkbuild.bat -W7X64 fre . %1
del /f /q *.log *.err *.wrn
echo done...

其中最重要的只有一行,即第二行调用ddkbuild.bat,该文件来自于DDKWizard。

右键生成就会调用【生成命令行】对应的命令

还有另一种编译方式:使用WinDDK 7600.16385.0中自带的编译工具命令行

然后cd到编译目录,执行build

 如果写成命令行,x64-release版本的命令行如下:

set curPath=%~dp0
call %W7BASE%\bin\setenv.bat  %W7BASE%\ fre x64 WIN7
echo curPath %curPath%
echo setenv done
%curPath:~0,2%
cd %curPath%
build

W7BASE是自行设置的一个环境变量 ,指向WinDDK的安装目录,如D:\WinDDK\7600.16385.0

命令行安装驱动:

测试阶段不想写一个安装程序,所以先用命令行安装

C:\Users\Administrator>sc create testDrive binPath= C:\Users\Administrator\Desktop\testDrive.sys type= kernel
[SC] CreateService 成功

C:\Users\Administrator>sc start testDrive
[SC] StartService 失败 577:

Windows 无法验证此文件的数字签名。某软件或硬件最近有所更改,可能安装了签名错误或损毁的文件,或者安装的文件可能是来路不明的恶意软件。

如上一行sc create命令即可创建服务,sc start启动服务,提示签名错误,windows7和windows10禁用驱动签名的方式不一样,可以自行百度

禁用驱动签名后再次启动

C:\Users\Administrator>sc start testDrive

SERVICE_NAME: testDrive
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
        PID                : 0
        FLAGS              :

启动之前打开dbgView的话,可以看到驱动内的输出

关闭服务,也就是停止驱动

C:\Users\Administrator>sc stop testDrive

SERVICE_NAME: testDrive
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值