磁条读取器驱动程序示例

磁条读取器驱动程序示例演示如何为磁条读取器创建通用驱动程序,并用作创建新驱动程序的模板。 此示例使用 User-Mode Driver Framework (UMDF) 2.0 并演示基本功能,例如声明设备进行独占访问。 可以在 x86、amd64 和 Arm 平台上编译和部署示例驱动程序。

要求

还需要 Windows 软件开发工具包 (SDK) 10,但这是作为 Microsoft Visual Studio 的一部分安装的。

示例驱动程序不需要任何磁条读取器硬件即可正常工作,因为它在软件设备上运行。 如果想要与示例一起使用的硬件设备,仍可以通过将设备的硬件 ID 添加到 INF 文件来使用该驱动程序。

下载并提取示例

GitHub 上提供了 Windows 驱动程序示例

  1. 下载 Windows-driver-samples-master.zip。 此文件包含所有 Windows 驱动程序工具包 (WDK) 示例。

  2. 将Windows-driver-samples-master.zip 提取到开发计算机上所选位置。 此位置将在整个本文的其余部分中称为 <sample_root>

在 Visual Studio 中打开驱动程序解决方案

  1. 在 Windows 资源管理器中,导航到 <sample_root>\pos\drivers\MagneticStripeReader 文件夹。

  2. 双击解决方案文件, MagneticStripeReader.sln 使用 Visual Studio 打开解决方案。

  3. 项目 zip 文件已从 Internet 下载,因此打开解决方案时可能会看到安全警告。 如果这样做,请单击“ 确定 ”以完成项目加载。

  4. 在 Visual Studio 中,找到 解决方案资源管理器。 如果尚未打开,请从“视图”菜单中选择“解决方案资源管理器”。 在解决方案资源管理器中,可以看到项目及其包含的源文件。

使用 Visual Studio 生成示例

  1. 在 Visual Studio 中的 “标准 ”工具栏中,选择与操作系统 平台匹配的解决方案 平台。 例如,如果你使用的是 64 位版本的 Windows,请选择“x64”。 如果面向 Arm 平台,则需要使用配置管理器将 Arm 添加到目标列表。

  2. 从“生成”菜单中选择“生成解决方案”。

安装驱动程序

  1. 生成后,驱动程序已使用测试认证进行签名。 若要安装用于测试的驱动程序,需要更改启动配置,以允许加载使用测试证书签名的驱动程序。 若要更改设置,请打开提升的命令提示符并输入 命令:

    bcdedit.exe /set TESTSIGNING on

  2. 重启计算机。

    注意

    如果之前已启用测试签名,则不需要重新启动。

  3. 在提升的命令提示符下,导航到生成项目的文件夹。 如果创建了 x64 调试版本,则此文件夹将为 <project_root>\x64\Debug\SampleMagneticStripeReaderDrv

    在该文件夹中,你将看到以下文件:

    文件 说明
    SampleMagneticStripeReaderDrv.dll 驱动程序文件。
    SampleMagneticStripeReaderDrv.inf 一个 INF 文件,其中包含安装驱动程序所需的信息。
    samplemagneticstripereaderdrv.cat 已签名的目录文件,用作整个包的签名。
  4. 确定与 OS 和驱动程序平台匹配的设备控制台实用工具 (devcon.exe) 的路径。 x64 版本的默认位置为 C:\Program Files (x86)\Windows Kits\10\Tools\x64

  5. 键入以下命令,将 <devcon_path> 替换为在上一步中找到的 devcon.exe 文件的路径。

    "<devcon_path>\devcon.exe" install SampleMagneticStripeReaderDrv.inf Root\SampleMagneticStripeReaderDrv

  6. 你将看到一个Windows 安全中心对话框,告知你无法验证驱动程序的发布者。 这是因为驱动程序是使用测试证书签名的。 单击“ 仍然安装此驱动程序软件”。 稍后,你将看到驱动程序已正确安装的确认。

如果设备控制台实用工具无法安装驱动程序,请确认使用的是与当前 OS 平台和驱动程序平台匹配的驱动程序。

在 设备管理器 中查看设备

  1. 打开“设备管理器”。 这可以通过多种方式完成,但如果仍在命令提示符下,请键入 devmgmt

  2. 在“设备管理器”中,从“视图”菜单中选择“按类型排序的设备”。

  3. 设备列在 “示例” 节点下。