条形码扫描仪驱动程序示例
条形码扫描仪驱动程序示例演示如何为条形码扫描仪创建通用驱动程序,并用作创建新条形码扫描仪驱动程序的模板。 此示例使用 User-Mode Driver Framework (UMDF) 2.0 并演示基本功能,例如声明设备进行独占访问。 可以在 x86、amd64 和 Arm 平台上编译和部署示例驱动程序。 有关通用驱动程序的详细信息,请转到使用通用 Windows 驱动程序入门。
要求
Windows 10
Microsoft Visual Studio (任何版本)
Windows 软件开发工具包 (SDK) 10 也是必需的,但这是作为 Microsoft Visual Studio 的一部分安装的。
示例驱动程序不需要任何条形码扫描仪硬件即可运行,因为它在软件设备上运行。 如果想要将硬件设备与示例一起使用,则仍可以通过将设备硬件 ID 添加到 INF 文件来使用该驱动程序。
下载并提取示例
下载 Windows-driver-samples-master.zip。 此文件包含所有 Windows 驱动程序工具包 (WDK) 示例。
将 Windows-driver-samples-master.zip 提取到开发计算机上所选的位置。 在本文的其余部分,此位置将称为
<sample_root>
。
在 Visual Studio 中打开驱动程序解决方案
在 Windows 资源管理器中,导航到
<sample_root>\pos\drivers\barcodescanner
文件夹。双击解决方案文件, BarcodeScanner.sln 以使用 Visual Studio 打开解决方案。
项目 zip 文件是从 Internet 下载的,因此打开解决方案时可能会看到安全警告。 如果这样做,请选择 “确定” 以完成项目加载。
在 Visual Studio 中,找到解决方案资源管理器。 如果尚未打开,请从“视图”菜单中选择“解决方案资源管理器”。 在 解决方案资源管理器 中,可以看到项目及其包含的源文件。
使用 Visual Studio 生成示例
在 Visual Studio 的 “标准 ”工具栏中,选择与操作系统 平台匹配的解决方案 平台。 例如,如果你使用的是 64 位版本的 Windows,请选择“x64”。 如果面向 Arm 平台,则需要使用配置管理器将 Arm 添加到目标列表。
从“生成”菜单中选择“生成解决方案”。
安装驱动程序
生成时,驱动程序已使用测试认证进行签名。 若要安装用于测试的驱动程序,需要更改启动配置,以允许加载使用测试证书签名的驱动程序。 若要更改设置,请打开提升的命令提示符并输入命令:
bcdedit.exe /set TESTSIGNING on
重启计算机。 如果以前启用了测试签名,则不需要重新启动。
在提升的命令提示符下,导航到生成项目的文件夹。 如果创建了 x64 调试版本,则此文件夹将为
<project_root>\x64\Debug\SampleBarcodeScannerDrv
。在该文件夹中,你将看到以下文件:
文件 说明 SampleBarcodeScannerDrv.dll 驱动程序文件。 SampleBarcodeScannerDrv.inf 包含安装驱动程序所需的信息的 INF 文件。 samplebarcodescannerdrv.cat 已签名的目录文件,用作整个包的签名。 确定与 OS 和驱动程序平台匹配的设备控制台实用工具 (devcon.exe) 的路径。 x64 版本的默认位置为
C:\Program Files (x86)\Windows Kits\10\Tools\x64
。键入以下命令,将
<devcon\_path>
替换为在上一步中找到的 devcon.exe 文件的路径。<devcon_path>\devcon.exe install SampleBarcodeScannerDrv.inf Root\SampleBarcodeScannerDrv
你将看到一个Windows 安全中心对话框,通知你无法验证驱动程序的发布者。 这是因为驱动程序是使用测试证书签名的。 选择“ 仍然安装此驱动程序软件”。 稍后,你将看到驱动程序已正确安装的确认。
如果设备控制台实用工具无法安装驱动程序,请确认你使用的是与当前 OS 平台和驱动程序平台匹配的驱动程序。
在 设备管理器 中查看设备
打开“设备管理器”。 这可以通过多种方式完成,但如果仍在命令提示符下,请键入
devmgmt
。在“设备管理器”中,从“视图”菜单中选择“按类型排序的设备”。
你的设备列在 “示例” 节点下。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈