WINUSB设备的inf文档的编写

《WINUSB设备的inf文档的编写》

目录

简介... 1

1.      获取inf文件和cat文件模板... 1

1.1       创建WinUSB应用程序... 1

1.2       获取inf文件和cat文件... 3

2.      修改inf文件以安装WINUSB驱动... 3

3.      通过inf文件安装WINUSB驱动... 4

4.      编写inf文件可能遇到的问题... 4

 


 

简介

         微软实际上是提供了一个inf文件和cat文件的模板,可以按照本文的步骤获取inf文件和cat文件,并且修改它们使它们为自己的设备装上WINUSB驱动。

1.       获取inf文件和cat文件模板

这一部分是从MSDN中截取下来的(网址为:https://msdn.microsoft.com/zh-cn/library/windows/hardware/dn376872(v=vs.85).aspx),主要是为了方便读者离线操作。

1.1 创建WinUSB应用程序

1、  打开 MicrosoftVisual Studio。在“文件”菜单上,选择“新建 > 项目”。会打开“新建目”对话框,如以下屏幕截图所示。

2、  在“新建项目”对话框的左侧窗格中,找到并选择“USB”。

3、  在中心窗格中,选择“WinUSB应用程序”。

4、  在“名称”字段中,如果愿意,更改项目名称。在本主题中,我们将使用默认名称。

5、  在“位置”字段中,输入要在其中创建新项目的目录。

6、  选中“创建解决方案的目录”。单击“确定”。

WINUSB设备的inf文档的编写_第1张图片

Visual Studio 创建了两个项目和一个解决方案。你可以看到该解决方案、两个项目以及属于“解决方案资源管理器”中各个项目的文件,如以下屏幕截图所示。(如果“解决方案资源管理器”窗口不可见,则从“视图”菜单中选择“解决方案资源管理器”。)解决方案包含名为 USB Application1 的 C++ 应用程序项目和名为 USB Application1 Package 的驱动程序包项目。如果要查看应用程序源代码,则可以打开出现在“源文件”下的任意文件。

WINUSB设备的inf文档的编写_第2张图片

USB Application1Package 项目包含一个 INF 文件,用于安装 Microsoft 提供的 Winusb.sys 驱动程序作为设备驱动程序。

7、  在“解决方案资源管理器”窗口中,右键单击“解决方案“USB Application1”(2 个项目)”,然后选择“配置管理器”。为应用程序项目和包项目选择配置和平台。在本练习中,我们选择 Win7 Debug 和 x64(若是win8.1系统则为:Win8.1 Debug),如以下屏幕截图所示。

WINUSB设备的inf文档的编写_第3张图片

1.2 获取inf文件和cat文件

在VS中按F7(生成解决方案),然后会在你存放该项目的目录下生成一个x64\Win7Debug\USB Application1 Package的文件夹,里面就有我们需要的inf和cat文件。如图所示:

2.       修改inf文件以安装WINUSB驱动

1、  打开inf文件,找到以下行:

%DeviceName% =USB_Install, USB\VID_vvvv&PID_pppp

将USB\VID_vvvv&PID_pppp替换为你设备的硬件ID,从设备管理器获取硬件ID。在设备管理器中,查看设备属性。在“详细信息”选项卡中,查看“硬件 ID”属性值。

2、  由https://msdn.microsoft.com/zh-cn/subscriptions/downloads/hh450799(v=vs.85).aspx所说,在Win7中应该在最后加上以下行:

;----------添加注册表部分 ----------

[USBDeviceClassReg]

HKR,,,,"UniversalSerial Bus devices"

HKR,,NoInstallClass,,1

HKR,,SilentInstall,,1

HKR,,IconPath,%REG_MULTI_SZ%,"%systemroot%\system32\setupapi.dll,-20"

3、  在inf中加上以下行:

[USB_Install.Wdf]

KmdfService=WINUSB, WinUsb_Install

[WinUSB_Install]

KmdfLibraryVersion=1.9

3.       通过inf文件安装WINUSB驱动

1、  打开设备管理器,右键你的设备,选择更新驱动程序软件。

2、  选择“浏览计算机以查找驱动程序软件”

3、  选择“从计算机的设备驱动程序列表中选择”

4、  选择从磁盘安装,如下图所示:

WINUSB设备的inf文档的编写_第4张图片

5、 点击“浏览”,进入你存放inf文件的文件夹选择inf文件,最后点击确定即可。

4.       编写inf文件可能遇到的问题

如果不能正确安装驱动,可以在C:\Windows\setupact.log查看驱动安装时的错误。这里列举两个问题:

1、出现error locating section [USB_Install.Wdf] in infC:\Windows\INF\oem29.inf – status(E0000101) 错误

解决方法:根据字面意思,是在定义[USB_Install.Wdf]时出现了错误。于是我打开编写的inf文件搜索 [USB_Install.Wdf],发现并没有这个节,于是我就在网上查找了这个节如何写,将其加入了自己的inf文件:

[USB_Install.Wdf]

KmdfService=WINUSB, WinUsb_Install

2、出现ReadComponents error: SetupGetStringField for KMDF version failed:status(E0000102) 错误。

解决方法:通过字面意思不难理解是读取KMDF版本错误。于是我在inf文件中加入了这一句:

[WinUSB_Install]

KmdfLibraryVersion=1.9

你可能感兴趣的:(USB)