1、从 GitHub 下载并解压缩 KMDF Echo 示例
在此处浏览所有的通用驱动程序示例:
https://github.com/Microsoft/Windows-driver-samples
KMDF Echo 示例位于 general 文件夹中。
a.对于本实验,我们将以压缩文件的形式下载通用驱动程序示例。
https://github.com/Microsoft/Windows-driver-samples/archive/master.zip
b. 将 master.zip 文件下载到本地硬盘驱动器中。
c. 右键单击 Windows-driver-samples-master.zip,然后选择“全部解压缩”。指定新的文件夹,或浏览到一个现有文件夹以存储已解压缩的文件。例如,你可以将 C:\DriverSamples\ 指定为要在其中解压缩文件的新文件夹。
d.解压缩文件后,请导航到以下子文件夹。
C:\DriverSamples\general\echo\kmdf
2、在 Visual Studio 中打开驱动程序解决方案
在 Microsoft Visual Studio 中,依次单击“文件”>“打开”****>“项目/解决方案...”,然后导航到包含已解压缩文件的文件夹(例如,C:\DriverSamples\general\echo\kmdf)。双击 kmdfecho 解决方案文件以打开它(或者直接用VS打开kmdf下的kmdfecho.sln文件)。
在 Visual Studio 中,找到“解决方案资源管理器”。(如果尚未打开,请从“视图”****菜单中选择“解决方案资源管理器”。)在“解决方案资源管理器”中,你可以看到一个具有三个项目的解决方案。
3、设置示例的配置和平台
在“解决方案资源管理器”中,右键单击“解决方案‘kmdfecho’(3 个项目)”,然后选择“配置管理器”****。请确保配置和平台设置与四个项目相同。默认情况下,在所有这些项目中都将配置设置为 "Win10 Debug",而将平台设置为 "Win64"。如果你对其中一个项目做了任何配置和/或平台更改,则必须对剩余三个项目做相同的更改。
-
设置运行时库
设置运行时库 - 将运行时库的版本从 DLL 版本更改为非 DLL 版本。如果没有此设置,则必须将 MSVC 运行时单独安装到目标计算机。
-
检查驱动程序签名
打开 Echo 驱动程序的属性页,并确保“驱动程序签名”>“签名模式”****已设置为“测试签名”。之所以必须这样做,是因为 Windows 要求对驱动程序进行签名。
-
使用 Visual Studio 生成示例
在 Visual Studio 中,依次单击“生成”>“生成解决方案”****。
如果一切正常,生成窗口将显示一条消息,指示所有这三个项目均已成功生成。
-
查找生成的驱动程序文件
在文件资源管理器中,导航到包含该示例的已解压缩文件的文件夹。例如,如果 C:\DriverSamples\general\echo\kmdf 是你前面指定的文件夹所在的路径,则导航至该路径。在该文件夹内,已编译的驱动程序文件的位置会有所不同,具体取决于“配置管理器”中选定的配置和平台设置。例如,如果让默认设置保持不变,则编译的驱动程序文件将针对 64 位调试版保存到名为 \x64\Debug 的文件夹中。
导航到包含 Autosync 驱动程序的生成文件的文件夹:
C:\DriverSamples\general\echo\kmdf\driver\AutoSync\x64\Debug。该文件夹应包含以下文件:
kmdfsamples.cat文件 说明 Echo.sys 驱动程序文件。
Echo.inf 包含安装驱动程序所需信息的信息 (INF) 文件。
-
此外,还将生成 echoapp.exe 文件,可在此处找到它:C:\DriverSamples\general\echo\kmdf\exe\x64\Debug
文件 说明 EchoApp.exe 命令提示符可执行测试文件,用于与 echo.sys 驱动程序通信。
-
找到 USB 便携驱动器或设置网络共享,以将生成的驱动程序文件和测试 echoApp.exe 从主机复制到目标计算机系统。
在下一部分中,将代码复制到目标计算机系统中,然后安装和测试驱动程序。
4、在目标计算机系统上安装 KMDF Echo 驱动程序示例
在第 4 部分中,你将使用 Devcon 来安装 Echo 示例驱动程序。
-> 在目标计算机系统上
安装驱动程序的计算机称为*“目标计算机”或“测试计算机”。通常,此类计算机独立于开发和生成驱动程序包的计算机。开发和生成驱动程序的计算机称为“主计算机”*。
将驱动程序包移至目标计算机并安装该驱动程序的过程称为“部署”**驱动程序。可自动或手动部署示例 Echo 驱动程序。
手动部署驱动程序之前,必须通过打开测试签名准备目标计算机。还需要在 WDK 安装中找到 DevCon 工具。完成该操作后,你便可以随时运行生成的驱动程序示例了。
通过执行以下步骤在目标计算机系统上安装驱动程序。
-
准备目标计算机
以管理员身份打开命令提示符窗口。然后,输入以下命令:
bcdedit /set TESTSIGNING ON
重新启动目标计算机。
-
<- 在主机系统上
导航至 WDK 安装中的 Tools 文件夹,并找到 DevCon 工具。例如,查找以下文件夹:
C:\Program Files (x86)\Windows Kits\10.0\Tools\x64\devcon.exe
在目标计算机上为生成的驱动程序包创建文件夹(例如,C:\EchoDriver)。从主计算机上前面描述的生成驱动程序包中复制所有文件,并将这些文件都保存到在目标计算机上创建的文件夹中。
在主计算机系统上找到 .cer 证书,该证书位于与该计算机上包含生成驱动程序文件的文件夹相同的文件夹中。在目标计算机上,右键单击证书文件,并单击“安装”,然后按照提示安装测试证书。
-
-> 在目标计算机系统上
安装驱动程序
以下说明向你演示了如何安装和测试示例驱动程序。下面是关于将用于安装驱动程序的 devcon 工具的一般语法:
devcon install <INF file> <hardware ID>
安装此驱动程序时需使用的 INF 文件为 echo.inf。该 inf 文件包含用于安装 echo.sys 的硬件 ID。对于 Echo 示例,硬件 ID 为 root\ECHO。
在目标计算机上,以管理员身份打开“命令提示符”窗口。导航到你的驱动程序包文件夹,然后输入以下命令:
devcon install echo.inf root\ECHO
如果你收到一条错误消息,指示 devcon 未被识别,请尝试将该路径添加到 devcon 工具。例如,如果将它复制到名为 C:\Tools 的文件夹中,请尝试使用以下命令:
C:\tools\devcon install echo.inf root\ECHO
此时将显示一个对话框,指示测试驱动程序为未签名的驱动程序。请单击“Install this driver anyway”以继续操作。
有关更详细的说明,请参阅配置计算机以进行驱动程序部署、测试和调试。
成功安装示例驱动程序后,可随时对其进行测试。
-
在设备管理器中查看驱动程序
1. 在目标计算机的“命令提示符”窗口中,输入 devmgmt 以打开“设备管理器”。在“设备管理器”的“视图”菜单上,选择“依类型排序设备”。在设备树的“示例设备”节点中,找到示例 WDF Echo 驱动程序。
-
测试驱动程序
双击运行 echoapp.exe 启动测试 Echo 应用,以确认该驱动程序可正常运行。
C:\Samples\KMDF_Echo_Sample> echoapp DevicePath: \\?\root#sample#0005#{cdc35b6e-0be4-4936-bf5f-5537380a7c1a} Opened device successfully 512 Pattern Bytes Written successfully 512 Pattern Bytes Read successfully Pattern Verified successfully 30720 Pattern Bytes Written successfully 30720 Pattern Bytes Read successfully Pattern Verified successfully
==========================================================
安装驱动程序的计算机称为*“目标计算机”或“测试计算机”。
通常,此类计算机独立于开发和生成驱动程序包的计算机。
1、以管理员身份打开命令提示符窗口。然后,输入以下命令:
bcdedit /set TESTSIGNING ON
重新启动目标计算机。
2、在目标计算机上为生成的驱动程序包创建文件夹(例如,C:\EchoDriver)。
从主计算机上前面描述的生成驱动程序包中复制所有文件(inf、sys、cat、cer)
以及 devcon.exe(WDK 安装中的 Tools 文件夹) 工具,
并将这些文件都保存到在目标计算机上创建的文件夹中。
3、在目标计算机上,右键单击.cer证书文件,并单击“安装”,然后按照提示安装测试证书。
4、安装驱动程序的 devcon 工具的一般语法:devcon install <INF file> <hardware ID>
inf 文件包含用于安装 .sys 的硬件 ID。对于 Echo 示例,硬件 ID 为 root\ECHO。
在目标计算机上,以管理员身份打开“命令提示符”窗口,
导航到你的驱动程序包文件夹,然后输入以下命令:
devcon install echo.inf root\ECHO
5、重启计算机。
-----------------------------------------------------------------------------
cd 这里填绝对路径
devcon.exe install echo.inf root\ECHO
pause