ZynqのUSBデバイス機能を試すためにWinUSBを使用するための備忘録。

WinUSBのドライバファイルはWDKに含まれているので、このあたりからインストールする。 WDK8.1からはVisual Studio 2013を先にインストールしてからWDKをインストールしないといけない、と書いてある。サボって後で面倒になるのも嫌なので、手順に従う。

フォルダを作って、次に示すような感じでinfファイルを作成する。同じフォルダにamd64(64bit Windows7の例)というフォルダを作成し、その中にC:\Program Files (x86)\Windows Kits\8.1\Redist\wdf\x64からWdfCoInstaller01011.dll, winusbcoinstaller2.dll, WUDFUpdate_01011.dllをコピーする。

infファイルの内容(例)。GUID, VID, PIDは適当に修正

[Version]
Signature = "$Windows NT$"
Class = ZynqDeviceClass
ClassGuid={23AEE0D0-4E4B-4B03-8360-1FB07C0C3338}
Provider = %ProviderName%
CatalogFile=MyCatFile.cat

; ================== Class section ==================

[ClassInstall32]
Addreg=MyDeviceClassReg

[MyDeviceClassReg]
HKR,,,0,%ClassName%
HKR,,Icon,,-1

; ========== Manufacturer/Models sections ===========

[Manufacturer]
%ProviderName% = ZynqDevice_WinUSB,NTx86,NTamd64,NTia64

[ZynqDevice_WinUSB.NTx86]
%USB\ZynqDevice.DeviceDesc% =USB_Install, USB\VID_ABCD&PID_0100

[ZynqDevice_WinUSB.NTamd64]
%USB\ZynqDevice.DeviceDesc% =USB_Install, USB\VID_ABCD&PID_0100

[ZynqDevice_WinUSB.NTia64]
%USB\ZynqDevice.DeviceDesc% =USB_Install, USB\VID_ABCD&PID_0100
; =================== Installation ===================

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

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

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

;[4]
[USB_Install.Wdf]
KmdfService=WINUSB, WinUsb_Install

[WinUSB_Install]
KmdfLibraryVersion=1.11

;[5]
[USB_Install.HW]
AddReg=Dev_AddReg

[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{9F68AD5A-84E0-4E0F-8EF3-11139532FD22}"

;[6]
[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
WUDFUpdate_01011.dll

[DestinationDirs]
CoInstallers_CopyFiles=11

; ================= Source Media Section =====================
;[7]

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

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

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

[SourceDisksFiles.ia64]
WinUSBCoInstaller2.dll=3
WdfCoInstaller01011.dll=3
WUDFUpdate_01011.dll=3

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

[Strings]
ProviderName="ZynqUsbTest"
USB\ZynqDevice.DeviceDesc="ZynqOTG via WinUSB"
WinUSB_SvcDesc="WinUSB Test"
DISK_NAME="My Install Disk"
ClassName="ZynqDeviceClass"

Comments