如何测试驱动程序包(手动部署) - Windows drivers
本文介绍如何使用驱动程序 INF 安装文件在测试用计算机上手动安装驱动程序包,并验证其安装和操作。
先决条件
准备安装的驱动程序包。 必须先创建并生成驱动程序,然后创建用于安装的驱动程序包。 有关详细信息,请参阅 生成驱动程序 和 创建驱动程序包。
配置为接受测试签名驱动程序的目标电脑。
(可选)已安装的调试器,用于检查新安装的驱动程序。
概述
安装驱动程序的计算机称为 目标计算机 或 测试计算机。 通常,此计算机与开发并生成驱动程序包的计算机分开。 开发和生成驱动程序的计算机称为 主计算机。
将驱动程序包移动到目标计算机并安装驱动程序的过程称为 部署 驱动程序。
找到驱动程序的生成输出
在文件资源管理器中,转到包含示例提取文件的文件夹。 例如,对于回显示例驱动程序,请访问 C:\DriverSamples\general\echo\kmdf。 在该文件夹中,编译的驱动程序文件的位置因在 Configuration Manager 中选择的配置和平台设置而异。 如果保留默认设置不变,则编译的驱动程序文件将保存到名为 \x64\Debug 64 位调试版本的文件夹中。
文件夹应包含以下文件:
文件
DESCRIPTION
Echo.sys
驱动程序二进制系统文件。
Echo.inf
一个信息(INF)文件,其中包含安装驱动程序所需的信息。
Echo.cer
测试签名时生成的 .cer 证书文件。
Echo.pdb
驱动程序的可选调试符号,用于 Windows 调试器使用。
找到 USB 指纹驱动器或设置网络共享,将生成的驱动程序文件从主机复制到目标测试系统。
将文件复制到目标系统以安装和测试驱动程序。
在目标系统上安装驱动程序示例
若要在目标系统上安装驱动程序,请执行以下步骤。
重要
在更改启动设置之前,可能需要在测试电脑上暂时挂起 Windows 安全功能,例如 BitLocker 和安全启动。
在测试完成后重新启用这些安全功能,并在禁用安全功能时适当地管理测试电脑。
禁用目标系统上的驱动程序签名强制实施
在部署测试签名驱动程序之前,请通过启用测试签名来准备目标计算机。
在目标系统上,启用测试签名的驱动程序:
打开“Windows 设置”。
在 “系统”中,选择“ 恢复”。
在 “高级启动”下,选择“ 立即重启”。
计算机重启时,选择 “启动”选项。 在 Windows 10 中,选择“ 排查>高级选项>启动设置 ”,然后选择“ 重启”。
在 “启动设置” 屏幕上,按 F7 键选择“ 禁用驱动程序签名强制 ”。
重新启动目标计算机。
安装测试证书
在目标计算机上,选择并按住或右键单击证书文件,然后选择“ 安装”,然后按照提示安装测试证书。
如果需要有关设置目标计算机的更详细说明,请参阅 准备计算机进行手动驱动程序部署。
安装选项 #1 - 右键单击 INF 文件
以下说明演示如何安装和测试示例驱动程序。
在目标计算机上,以管理员身份打开命令提示符窗口。 导航到驱动程序包文件夹,右键单击 INF 文件,例如 echo.inf 文件,然后选择“ 安装”。
此时会显示一个对话框,指示测试驱动程序是未签名的驱动程序。 无论如何,请选择“安装此驱动程序”以继续。
安装选项 #2 - Devcon 工具
在某些情况下,使用命令行工具(如 PnPUtil 或 Devcon )对于驱动程序开发工作流来说可能很方便。 本部分介绍如何使用 DevCon 工具安装驱动程序。
在主机系统上,转到 WDK 安装中的 “工具” 文件夹,找到 DevCon 工具。 例如,查看以下文件夹: C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe。
在生成的驱动程序包的目标上创建文件夹,例如 C:\EchoDriver。 将 devcon.exe 复制到目标系统。
以下说明演示如何使用 devcon 安装和测试示例驱动程序。 下面是用于安装驱动程序的 devcon 工具的一般语法:
devcon install
在此示例中,已安装回显驱动程序。 安装此驱动程序所需的 INF 文件是 echo.inf。 inf 文件包含用于安装 echo.sys的硬件 ID。 对于回显示例,硬件 ID 为 root\ECHO。
在目标计算机上,以管理员身份打开命令提示符窗口。 转到驱动程序包文件夹,然后输入以下命令:
devcon install echo.inf root\ECHO
如果收到一条关于 devcon 未被识别的错误消息,请尝试添加 devcon 工具的路径。 例如,如果将它复制到名为 C:\Tools的文件夹,请尝试使用以下命令:
c:\tools\devcon install echo.inf root\ECHO
此时会显示一个对话框,指示测试驱动程序是未签名的驱动程序。 选择“仍然安装此驱动程序”以继续。
小窍门
如果安装有任何问题,请查看以下文件了解详细信息。
%windir%\inf\setupapi.dev.log
检查已安装的驱动程序
设备管理器
使用 Device Manager 确认你已成功安装驱动程序,并且已加载并正在运行。
在目标计算机上,在命令提示符窗口中,输入命令 devmgmt 以打开设备管理器。
在“设备管理器”的 “视图 ”菜单上, 按类型选择“设备”。
在设备树中,找到驱动程序,例如示例设备节点中的示例 WDF 回显驱动程序。
PnPUtil
使用 PnPUtil 收集有关已安装驱动程序的其他信息。
打开命令提示符窗口(以管理员身份运行)。
输入 pnputil /? 查看命令选项。 有关详细信息,请参阅 PnPUtil 命令语法 。
使用 pnputil /enum-drivers /files 查看所有 OEM 驱动程序文件。
使用 pnputil /enum-devices /problem /deviceids 显示有问题设备的设备 ID。 在这个示例中,OSR FX2 板的驱动程序存在一个活动问题代码 CM_PROB_UNSIGNED_DRIVER。
PS C:\WINDOWS\system32> pnputil /enum-devices /problem /deviceids
Microsoft PnP Utility
Instance ID: USB\VID_0547&PID_1002\5&353525f&0&3
Device Description: WDF Sample Driver (DMF Sample 1) for OSR USB-FX2 Learning Kit
Class Name: Sample
Class GUID: {78a1c341-4539-11d3-b88d-00c04fad5171}
Manufacturer Name: OSR
Status: Problem
Problem Code: 52 (0x34) [CM_PROB_UNSIGNED_DRIVER]
Problem Status: 0xC0000428
Driver Name: oem40.inf
Hardware IDs: USB\VID_0547&PID_1002&REV_0000
USB\VID_0547&PID_1002
Compatible IDs: USB\COMPAT_VID_0547&Class_FF&SubClass_00&Prot_00
USB\COMPAT_VID_0547&Class_FF&SubClass_00
USB\COMPAT_VID_0547&Class_FF
USB\Class_FF&SubClass_00&Prot_00
USB\Class_FF&SubClass_00
USB\Class_FF
有关其他命令示例,请参阅 PnPUtil 示例。
(可选)附加调试器以检查新安装的驱动程序
使用 Windows 内核调试器 WinDbg 附加到驱动程序并检查其操作情况。 有关详细信息,请参阅 Windows 调试入门。 有关配置目标计算机并使用网络连接设置调试电缆的信息,请参阅 “自动设置 KDNET 网络内核调试”
小窍门
卸载驱动程序,然后使用 .kdfiles (Set Driver Replacement Map) 内核调试器命令复制较新版本的驱动程序以进一步测试。
相关主题
生成驱动程序
创建驱动程序包。
测试驱动程序
自动设置 KDNET 网络内核调试