WinUSB安装 [英] WinUSB Installation

查看:212
本文介绍了WinUSB安装的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想尝试一下WinUSB。我已经安装了WinDDK,并且即将为驱动程序创建第一个INF文件。我正在关注 MSDN指南可以做到这一点。该指南包含一个样本INF文件和将节名中的USB_Install更改为适当的DDInstall值的说明。

I wanted to experiment a bit with WinUSB. I've installed the WinDDK and I'm about to create my first INF-file for my driver. I'm following the MSDN guide to do this. The guide contains a sample INF file and the instructions to "changing USB_Install in section names to an appropriate DDInstall value".

足够,唯一的问题是我不知道该怎么做合适的DDInstall值是。

Fair enough, only problem is I have no idea what 'appropriate DDInstall values' are.

我并不是INF文件的专家,我只能猜测该指南可能希望我更改示例文件

I'm not really an expert with INF files and I can only guess that the guide probably wants me to change the section names in the sample file

[USB_Install]
Include = winusb.inf
Needs   = WINUSB.NT

与部分标题中的 [USB_Install] 有所不同。我发现的有关DDInstall的唯一说明只是对该部分的处理方法的一般说明(也在MSDN上)。

to something different than [USB_Install] in the section header. The only explanation about DDInstall I found is just a general explanation on what to do with this section (Also on MSDN).

我的问题是,我应该输入什么我的INF文件而不是 [USB_Install] 字符串?

My question is, what I'm I supposed to put into my INF file instead of the [USB_Install] string?

推荐答案

I试图遵循相同的MSDN指南,但遇到了一些问题。我最终使用了Microchip的WinUSB驱动程序模板。可以在 Microchip应用程序库中找到该模板。

I've tried to follow the same MSDN guide and ran into a few issues. I ended up using Microchip's WinUSB driver template. This template can be found in the Microchip Application Libraries.

它与MSDN给出的示例有些不同,但是可以在我的系统上使用。它也可以与最新WDK(8.0版)一起提供的工具和dll文件一起使用。

It's a bit different from the example given by MSDN but it works on my system. It also works with the tools and dll files which come with the latest WDK (version 8.0).

尽管这不能解决您的问题,但我认为这是一个更好的模板

Although this does not address your question, I think it's a better template to work from compared to the one provided by MSDN.

这是Microchip提供的inf文件:

Here is the inf file Microchip provides:

;This .inf file is a modified version of the example INF provided
;in the Microsoft document:
;"How to Use WinUSB to Communicate with a USB Device"


[Version]
Signature = "$Windows NT$"
Class = CustomUSBDevices
ClassGuid= {a503e2d3-a031-49dc-b684-c99085dbfe92}
Provider = %MFGNAME%
DriverVer=07/20/2012,1.0.0.4
CatalogFile=winusb.cat    ;CAT file needed for a signed driver pacakage
;------------------------------------------------------------------------------
; ========== Manufacturer/Models sections ===========
;------------------------------------------------------------------------------
[Manufacturer]
%MFGNAME% = MyDevice_WinUSB,NTx86,NTamd64

;------------------------------------------------------------------------------
;  Vendor and Product ID Definitions
;------------------------------------------------------------------------------
; When developing your custom USB device, the VID and PID used in the PC side
; application program and the firmware on the microcontroller must match.
; Modify the below lines to use your VID and PID.  Use the format as shown below.
; Note: One INF file can be used for multiple devices with different VID and PIDs.
; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
; There is a maximum number of devices that can be supported per line however.
; If you append a large number of VID/PIDs to the end of the line, and get a:
; "The data area passed to a system call is too small." error when trying to install
; the INF, try removing some of the VIDs/PIDs.
;------------------------------------------------------------------------------
[MyDevice_WinUSB.NTx86]
%DESCRIPTION% =USB_Install, USB\VID_04d8&PID_0204

[MyDevice_WinUSB.NTamd64]
%DESCRIPTION% =USB_Install, USB\VID_04d8&PID_0204


;=========================================================================================
;ClassInstall32 and ClassInstall_AddReg sections used to make new device manager category.
;=========================================================================================
[ClassInstall32]
AddReg=ClassInstall_AddReg

[ClassInstall_AddReg]
HKR,,,,%DEVICEMANAGERCATEGORY%
HKR,,Icon,,"-20"


; =================== Installation ===================

[USB_Install]
Include=winusb.inf
Needs=WINUSB.NT

[USB_Install.Services]
Include=winusb.inf
AddService=WinUSB,0x00000002,WinUSB_ServiceInstall

[WinUSB_ServiceInstall]
DisplayName     = %WinUSB_SvcDesc%
ServiceType     = 1
StartType       = 3
ErrorControl    = 1
ServiceBinary   = %12%\WinUSB.sys

[USB_Install.Wdf]
KmdfService=WINUSB, WinUsb_Install

[WinUSB_Install]
KmdfLibraryVersion=1.11

[USB_Install.HW]
AddReg=Dev_AddReg

[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{58D07210-27C1-11DD-BD0B-0800200C9a66}"
;When editing the GUID (the big hex number with dashes inside the squiggly 
;braces), make sure to write the intended PC application to use the same GUID.
;Otherwise the application won't be able to find the USB device properly.

[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles

[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01011.dll,WdfCoInstaller","WinUSBCoInstaller2.dll"

[CoInstallers_CopyFiles]
WinUSBCoInstaller2.dll
WdfCoInstaller01011.dll

[DestinationDirs]
CoInstallers_CopyFiles=11

; ================= Source Media Section =====================

[SourceDisksNames]
1 = %DISK_NAME%,,,\i386
2 = %DISK_NAME%,,,\amd64

[SourceDisksFiles.x86]
WinUSBCoInstaller2.dll=1
WdfCoInstaller01011.dll=1

[SourceDisksFiles.amd64]
WinUSBCoInstaller2.dll=2
WdfCoInstaller01011.dll=2

; =================== Strings ===================

[Strings]
MFGNAME="Your Manufacturer Name" ; ManufacturerName
DESCRIPTION="Your USB Device Name" ; DeviceName
WinUSB_SvcDesc="WinUSB Device"
DISK_NAME="WinUSB Device Install Disk" ; DiskName
DEVICEMANAGERCATEGORY="Custom USB Devices" ; ClassName

这篇关于WinUSB安装的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆