2010年02月25日
WinUSB を使おう7~Infファイル編(4)最終~
; ================= Source Media Section =====================
[SourceDisksNames]
1 = %DISK_NAME%,,,\i386
2 = %DISK_NAME%,,,\amd64
3 = %DISK_NAME%,,,\ia64
[SourceDisksFiles.x86]
winusbcoinstaller2.dll=1
WdfCoInstaller01009.dll=1
WUDFUpdate_01009.dll=1
[SourceDisksFiles.NTamd64]
winusbcoinstaller2.dll=2
WdfCoInstaller01009.dll=2
WUDFUpdate_01009.dll=2
[SourceDisksFiles.ia64]
winusbcoinstaller2.dll=3
WdfCoInstaller01009.dll=3
WUDFUpdate_01009.dll=3 ・・・(1)
; =================== Strings ===================
[Strings]
ProviderName="MyWinUsbTest" ・・・(2)
USB\MyDevice.DeviceDesc="Test using WinUSB only" ・・・(3)
WinUSB_SvcDesc="WinUSB Test"
DISK_NAME="My Install Disk"
ClassName="MyDeviceClass" ・・・(4)
やっと完了。
[Source]セクション
(1)は先ほど準備したDLLたちの格納先を示しています。
[String]セクション
やっとここの説明ですね
今まで出てきた「%%文字列%%」はここで定義されているのです。
(2)ずばりディバイスマネージャーで[プロバイダ名]として出力する箇所です。
(3)このDriverの名称です。狭義の意味ではWinUSB Driverなんですけどね。このInfファイルも含めて広義の意味で自分で名前をつけられます(えっへん!)
(4)これがディバイスマ ネージャーで表示されちゃうClass名です。
その他Stringもレジストリエディタで表示されたりする名称だったりします。
やっとinfファイルから開放されました。
WinUSB を使おう6~Infファイル編(3)~
[Installation]セクション
どうやらこのinfファイルからwinusb.infをさらにインクルードしてますね。
; =================== 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.9 ・・・(1)
[USB_Install.HW]
AddReg=Dev_AddReg
[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{b35924d6-3e16-4a9e-9782-5524a4b79bac}"・・・(2)
[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles
[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,""WdfCoInstaller01009.dll,WdfCoInstaller","WinUSBCoInstaller.dll"
・・・(3)
[CoInstallers_CopyFiles]
winusbcoinstaller2.dllWdfCoInstaller01009.dll
WUDFUpdate_01009.dll
・・・(4)
[DestinationDirs]
CoInstallers_CopyFiles=11
(1)ここは入手したDDKに入っているWDFのVersionを記載します。今回入手したDDK Ver7600.16385.0では1.9版です
(2)は構成編で説明したUSER.DLLで紐付けするDeviceInterfaceGUIDになります。これは新規にGUIDを生成する必要があります。そんな説明はこちらに詳しく記載してあります。
(4)重要なのはここです。
「WinDDK/BuildNumber/redist/winusb」に入っているDLLの名称
「WinDDK/BuildNumber/redist/wdf 」に入っているDLLの名称を書きます。
この記事記載時は7600.16385.0では
winusbcoinstaller2.dll
WdfCoInstaller01009.dll
WUDFUpdate_01009.dll
となります。
三番目のはどうやらWDFに含まれるUMDFのUPDATEらしいので
必要になります。
WinUSB を使おう5~Infファイル編(2)~
[Manufacturer]セクション
[Models]セクション
; ========== Manufacturer/Models sections ===========
[Manufacturer]
%ProviderName% = MyDevice_WinUSB,NTx86,NTamd64,NTia64・・・(1)
[MyDevice_WinUSB.NTx86]
%USB\MyDevice.DeviceDesc% =USB_Install,USB\VID_0547&PID_1002
[MyDevice_WinUSB.NTamd64]
%USB\MyDevice.DeviceDesc% =USB_Install,USB\VID_0547&PID_1002
[MyDevice_WinUSB.NTia64]
%USB\MyDevice.DeviceDesc% =USB_Install,USB\VID_0547&PID_1002
・・・(2)
(1)インストールする対応機器を記載してる[Manufacturer]セクションにあたる
(2)使用するDeviceのベンダーIDとプロダクトIDを記載する箇所です。
三つありますが記載している内容はすべて一緒です。
[Models]セクションにあたるのかな?
「%ProviderName%」と「%USB\MyDevice.DeviceDesc%」に関して後述する[String]セクションの定義ですのでそのときに。
InfファイルはこのベンダーIDとプロダクトIDでDeviceを認識しているといっても過言ではないです。
このあとがWinUSBのインストールの記載になりますinfファイル編(3)へ