windows driver

This commit is contained in:
rusefi 2020-06-27 00:26:45 -04:00
parent 45afc00e7f
commit 1b37e40b38
8 changed files with 549 additions and 0 deletions

12
windows_driver/README.txt Normal file
View File

@ -0,0 +1,12 @@
libusb 1.0 (WinUSB) Windows USB driver for 32 and 64 bit platforms.
This directory contains the necessary files to install a USB device as a WinUSB
device for use with libusb 1.0 on Windows (through the WinUSB API).
Before you can install the driver, you need to edit the .inf files and change the
values according to your device properties. Two set of .inf files are provided:
- libusb_device.inf for non composite devices (no MI_## part in the hardware ID)
- libusb_device_multiple_interfaces_0.inf & libusb_device_multiple_interfaces_1.inf
as an example of a two interface composite device (MI_00 + MI_01 in hardware ID)
See the .inf files for more information.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,178 @@
; ======== libusb 1.0 (WinUSB) device driver ==========
;
; To customize this inf file for your own device
;
; 1. Change "DeviceName" with the name you want your device to appear with
; on your system.
;
; 2. Change "VendorID" and "ProductID" according to those of your device.
; If your device is plugged in, you can retrieve these values through the
; Device Manager (regardless of whether the driver is installed or not).
;
; 3. Change "DeviceGUID" to a value that is unique on your system. For more
; information and tools to help you generate your own GUIDs, see
; http://en.wikipedia.org/wiki/Universally_Unique_Identifier.
;
; 4. Change "DeviceClassGUID" to reflect your USB Device Class.
; The following Device Classes are listed for reference:
; {745a17a0-74d3-11d0-b6fe-00a0c90f57da} : HID device
; {78a1c341-4539-11d3-b88d-00c04fad5171} : Generic WinUSB device
;
; 5. (Optional) Change the "Date" string.
;
; Note 1: if you need to create a matching cat file for this inf, you can use
; the inf2cat utility from the WinDDK, with the the following command:
; inf2cat /driver:"path_to_your inf" /os:7_X86,7_X64,Vista_X86,Vista_X64
;
; Note 2: The co-installers provided in these files are version 1.9.
; Please refer to:
; http://blogs.msdn.com/iliast/archive/2008/03/10/why-do-we-need-wdf-coinstallers.aspx and
; http://blogs.msdn.com/iliast/archive/2009/08/13/wdf-logo-requirements-regarding-coinstallers.aspx
; for more information about co-installers and their versioning
; ===================== Strings =======================
[Strings]
; =====================================================
; ========= START USER CONFIGURABLE SECTION ===========
; =====================================================
;DeviceName = "Microsoft XBox Controller Type S"
; Make sure "VID_" and "PID_" are always part of the strings below
;VendorID = "VID_045E"
;ProductID = "PID_0289"
DeviceName = "libusb STM DFU"
VendorID = "VID_0483"
ProductID = "PID_DF11"
DeviceGUID = "{d35924d6-3e16-4a9e-9782-5524a4b79bac}"
DeviceClassGUID = "{78a1c341-4539-11d3-b88d-00c04fad5171}"
; Date MUST be in MM/DD/YYYY format
Date = "01/01/2020"
; =====================================================
; ========== END USER CONFIGURABLE SECTION ============
; =====================================================
ProviderName = "libusb 1.0"
WinUSB_SvcDesc = "WinUSB Driver Service"
DiskName = "libusb (WinUSB) Device Install Disk"
ClassName = "libusb (WinUSB) devices"
; ====================== Version ======================
[Version]
DriverVer = %Date%
Signature = "$Windows NT$"
Class = %ClassName%
ClassGuid = %DeviceClassGUID%
Provider = %ProviderName%
CatalogFile = libusb_device.cat
; =================== Class section ===================
; Since the device is not a standard USB device, we define a new class for it.
[ClassInstall32]
Addreg = WinUSBDeviceClassReg
[WinUSBDeviceClassReg]
HKR,,,0,%ClassName%
; -20 is for the USB icon
HKR,,Icon,,-20
; =========== Manufacturer/Models sections ============
[Manufacturer]
%ProviderName% = libusbDevice_WinUSB,NTx86,NTamd64
[libusbDevice_WinUSB.NTx86]
%DeviceName% = USB_Install, USB\%VendorID%&%ProductID%
[libusbDevice_WinUSB.NTamd64]
%DeviceName% = USB_Install, USB\%VendorID%&%ProductID%
; ==================== Installation ===================
; The Include and Needs directives in the USB_Install section are required for
; installing WinUSB on Windows Vista systems. Windows XP systems ignore these
; directives. These directives should not be modified.
[USB_Install]
Include=winusb.inf
Needs=WINUSB.NT
; The Include directive in the USB_Install.Services section includes the system-
; supplied INF for WinUSB. This INF is installed by the WinUSB co-installer if
; it is not already on the target system. The AddService directive specifies
; WinUsb.sys as the devices function driver. These directives should not be
; modified.
[USB_Install.Services]
Include=winusb.inf
AddService=WinUSB,0x00000002,WinUSB_ServiceInstall
; The WinUSB_ServiceInstall section contains the data for installing WinUsb.sys
; as a service. This section should not be modified.
[WinUSB_ServiceInstall]
DisplayName = %WinUSB_SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WinUSB.sys
; The KmdfService directive installs WinUsb.sys as a kernel-mode service. The
; referenced WinUSB_Install section specifies the KMDF library version.
; Usually, the version can be derived from the WdfCoInstallerxxyyy.dll with
; xx = major, yyy = minor
[USB_Install.Wdf]
KmdfService=WINUSB, WinUsb_Install
[WinUSB_Install]
KmdfLibraryVersion=1.9
; USB_Install.HW is the key section in the INF. It specifies the device
; interface globally unique identifier (GUID) for your device. The AddReg
; directive puts the interface GUID in a standard registry value. When
; WinUsb.sys is loaded as the devices function driver, it reads the registry
; value and uses the specified GUID to represent the device interface. You
; should replace the GUID in this example with one that you create specifically
; for your device. If the protocols for the device change, you should create a
; new device interface GUID.
[USB_Install.HW]
AddReg=Dev_AddReg
[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,%DeviceGUID%
; The USB_Install.CoInstallers section, including the referenced AddReg and
; CopyFiles sections, contains data and instructions to install the WinUSB and
; KMDF co installers and associate them with the device. Most USB devices can
; use these sections and directives without modification.
[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles
[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller","WinUSBCoInstaller2.dll"
[CoInstallers_CopyFiles]
WinUSBCoInstaller2.dll
WdfCoInstaller01009.dll
[DestinationDirs]
CoInstallers_CopyFiles=11
; =============== Source Media Section ================
; The x86 and x64 versions of Windows have separate co installers. This example
; stores them on the installation disk in folders that are named x86 and amd64
[SourceDisksNames]
1 = %DiskName%,,,\x86
2 = %DiskName%,,,\amd64
[SourceDisksFiles.x86]
WinUSBCoInstaller2.dll=1
WdfCoInstaller01009.dll=1
[SourceDisksFiles.amd64]
WinUSBCoInstaller2.dll=2
WdfCoInstaller01009.dll=2

View File

@ -0,0 +1,179 @@
; ======== libusb 1.0 (WinUSB) device driver ==========
;
; To customize this inf file for your own device
;
; 1. Change "DeviceName" with the name you want your device to appear with
; on your system.
;
; 2. Change "VendorID" and "ProductID" according to those of your device.
; If your device is plugged in, you can retrieve these values through the
; Device Manager (regardless of whether the driver is installed or not).
;
; 3. Change "DeviceGUID" to a value that is unique on your system. For more
; information and tools to help you generate your own GUIDs, see
; http://en.wikipedia.org/wiki/Universally_Unique_Identifier.
;
; 4. Change "DeviceClassGUID" to reflect your USB Device Class.
; The following Device Classes are listed for reference:
; {745a17a0-74d3-11d0-b6fe-00a0c90f57da} : HID device
; {78a1c341-4539-11d3-b88d-00c04fad5171} : Generic WinUSB device
;
; 5. (Optional) For a composite device (hardware ID with an MI_## part),
; change the empty "InterfaceID" string with the "MI_##" string of
; your device
;
; 6. (Optional) Change the "Date" string.
;
; Note 1: if you need to create a matching cat file for this inf, you can use
; the inf2cat utility from the WinDDK, with the the following command:
; inf2cat /driver:"path_to_your inf" /os:7_X86,7_X64,Vista_X86,Vista_X64
;
; Note 2: The co-installers provided in these files are version 1.9.
; Please refer to:
; http://blogs.msdn.com/iliast/archive/2008/03/10/why-do-we-need-wdf-coinstallers.aspx and
; http://blogs.msdn.com/iliast/archive/2009/08/13/wdf-logo-requirements-regarding-coinstallers.aspx
; for more information about co-installers and their versioning
; ===================== Strings =======================
[Strings]
; =====================================================
; ========= START USER CONFIGURABLE SECTION ===========
; =====================================================
DeviceName = "libusb STM DFU"
VendorID = "VID_0483"
ProductID = "PID_DF11"
InterfaceID = "MI_00"
DeviceGUID = "{d35924d6-3e16-4a9e-9782-5524a4b79ba0}"
DeviceClassGUID = "{78a1c341-4539-11d3-b88d-00c04fad5171}"
; Date MUST be in MM/DD/YYYY format
Date = "01/08/2010"
; =====================================================
; ========== END USER CONFIGURABLE SECTION ============
; =====================================================
ProviderName = "libusb 1.0"
WinUSB_SvcDesc = "WinUSB Driver Service"
DiskName = "libusb (WinUSB) Device Install Disk"
ClassName = "libusb (WinUSB) devices"
; ====================== Version ======================
[Version]
DriverVer = %Date%
Signature = "$Windows NT$"
Class = %ClassName%
ClassGuid = %DeviceClassGUID%
Provider = %ProviderName%
CatalogFile = libusb_device.cat
; =================== Class section ===================
; Since the device is not a standard USB device, we define a new class for it.
[ClassInstall32]
Addreg = WinUSBDeviceClassReg
[WinUSBDeviceClassReg]
HKR,,,0,%ClassName%
; -20 is for the USB icon
HKR,,Icon,,-20
; =========== Manufacturer/Models sections ============
[Manufacturer]
%ProviderName% = libusbDevice_WinUSB,NTx86,NTamd64
[libusbDevice_WinUSB.NTx86]
%DeviceName% = USB_Install, USB\%VendorID%&%ProductID%&%InterfaceID%
[libusbDevice_WinUSB.NTamd64]
%DeviceName% = USB_Install, USB\%VendorID%&%ProductID%&%InterfaceID%
; ==================== Installation ===================
; The Include and Needs directives in the USB_Install section are required for
; installing WinUSB on Windows Vista systems. Windows XP systems ignore these
; directives. These directives should not be modified.
[USB_Install]
Include=winusb.inf
Needs=WINUSB.NT
; The Include directive in the USB_Install.Services section includes the system-
; supplied INF for WinUSB. This INF is installed by the WinUSB co-installer if
; it is not already on the target system. The AddService directive specifies
; WinUsb.sys as the devices function driver. These directives should not be
; modified.
[USB_Install.Services]
Include=winusb.inf
AddService=WinUSB,0x00000002,WinUSB_ServiceInstall
; The WinUSB_ServiceInstall section contains the data for installing WinUsb.sys
; as a service. This section should not be modified.
[WinUSB_ServiceInstall]
DisplayName = %WinUSB_SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WinUSB.sys
; The KmdfService directive installs WinUsb.sys as a kernel-mode service. The
; referenced WinUSB_Install section specifies the KMDF library version.
; Usually, the version can be derived from the WdfCoInstallerxxyyy.dll with
; xx = major, yyy = minor
[USB_Install.Wdf]
KmdfService=WINUSB, WinUsb_Install
[WinUSB_Install]
KmdfLibraryVersion=1.9
; USB_Install.HW is the key section in the INF. It specifies the device
; interface globally unique identifier (GUID) for your device. The AddReg
; directive puts the interface GUID in a standard registry value. When
; WinUsb.sys is loaded as the devices function driver, it reads the registry
; value and uses the specified GUID to represent the device interface. You
; should replace the GUID in this example with one that you create specifically
; for your device. If the protocols for the device change, you should create a
; new device interface GUID.
[USB_Install.HW]
AddReg=Dev_AddReg
[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,%DeviceGUID%
; The USB_Install.CoInstallers section, including the referenced AddReg and
; CopyFiles sections, contains data and instructions to install the WinUSB and
; KMDF co installers and associate them with the device. Most USB devices can
; use these sections and directives without modification.
[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles
[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller","WinUSBCoInstaller2.dll"
[CoInstallers_CopyFiles]
WinUSBCoInstaller2.dll
WdfCoInstaller01009.dll
[DestinationDirs]
CoInstallers_CopyFiles=11
; =============== Source Media Section ================
; The x86 and x64 versions of Windows have separate co installers. This example
; stores them on the installation disk in folders that are named x86 and amd64
[SourceDisksNames]
1 = %DiskName%,,,\x86
2 = %DiskName%,,,\amd64
[SourceDisksFiles.x86]
WinUSBCoInstaller2.dll=1
WdfCoInstaller01009.dll=1
[SourceDisksFiles.amd64]
WinUSBCoInstaller2.dll=2
WdfCoInstaller01009.dll=2

View File

@ -0,0 +1,180 @@
; ======== libusb 1.0 (WinUSB) device driver ==========
;
; To customize this inf file for your own device
;
; 1. Change "DeviceName" with the name you want your device to appear with
; on your system.
;
; 2. Change "VendorID" and "ProductID" according to those of your device.
; If your device is plugged in, you can retrieve these values through the
; Device Manager (regardless of whether the driver is installed or not).
;
; 3. Change "DeviceGUID" to a value that is unique on your system. For more
; information and tools to help you generate your own GUIDs, see
; http://en.wikipedia.org/wiki/Universally_Unique_Identifier.
;
; 4. Change "DeviceClassGUID" to reflect your USB Device Class.
; The following Device Classes are listed for reference:
; {745a17a0-74d3-11d0-b6fe-00a0c90f57da} : HID device
; {78a1c341-4539-11d3-b88d-00c04fad5171} : Generic WinUSB device
;
; 5. (Optional) For a composite device (hardware ID with an MI_## part),
; change the empty "InterfaceID" string with the "MI_##" string of
; your device
;
; 6. (Optional) Change the "Date" string.
;
; Note 1: if you need to create a matching cat file for this inf, you can use
; the inf2cat utility from the WinDDK, with the the following command:
; inf2cat /driver:"path_to_your inf" /os:7_X86,7_X64,Vista_X86,Vista_X64
;
; Note 2: The co-installers provided in these files are version 1.9.
; Please refer to:
; http://blogs.msdn.com/iliast/archive/2008/03/10/why-do-we-need-wdf-coinstallers.aspx and
; http://blogs.msdn.com/iliast/archive/2009/08/13/wdf-logo-requirements-regarding-coinstallers.aspx
; for more information about co-installers and their versioning
; ===================== Strings =======================
[Strings]
; =====================================================
; ========= START USER CONFIGURABLE SECTION ===========
; =====================================================
DeviceName = "libusb STM DFU"
; Make sure "VID_" and "PID_" are always part of the strings below
VendorID = "VID_0483"
ProductID = "PID_DF11"
InterfaceID = "MI_01"
DeviceGUID = "{d35924d6-3e16-4a9e-9782-5524a4b79ba1}"
DeviceClassGUID = "{78a1c341-4539-11d3-b88d-00c04fad5171}"
; Date MUST be in MM/DD/YYYY format
Date = "01/08/2010"
; =====================================================
; ========== END USER CONFIGURABLE SECTION ============
; =====================================================
ProviderName = "libusb 1.0"
WinUSB_SvcDesc = "WinUSB Driver Service"
DiskName = "libusb (WinUSB) Device Install Disk"
ClassName = "libusb (WinUSB) devices"
; ====================== Version ======================
[Version]
DriverVer = %Date%
Signature = "$Windows NT$"
Class = %ClassName%
ClassGuid = %DeviceClassGUID%
Provider = %ProviderName%
CatalogFile = libusb_device.cat
; =================== Class section ===================
; Since the device is not a standard USB device, we define a new class for it.
[ClassInstall32]
Addreg = WinUSBDeviceClassReg
[WinUSBDeviceClassReg]
HKR,,,0,%ClassName%
; -20 is for the USB icon
HKR,,Icon,,-20
; =========== Manufacturer/Models sections ============
[Manufacturer]
%ProviderName% = libusbDevice_WinUSB,NTx86,NTamd64
[libusbDevice_WinUSB.NTx86]
%DeviceName% = USB_Install, USB\%VendorID%&%ProductID%&%InterfaceID%
[libusbDevice_WinUSB.NTamd64]
%DeviceName% = USB_Install, USB\%VendorID%&%ProductID%&%InterfaceID%
; ==================== Installation ===================
; The Include and Needs directives in the USB_Install section are required for
; installing WinUSB on Windows Vista systems. Windows XP systems ignore these
; directives. These directives should not be modified.
[USB_Install]
Include=winusb.inf
Needs=WINUSB.NT
; The Include directive in the USB_Install.Services section includes the system-
; supplied INF for WinUSB. This INF is installed by the WinUSB co-installer if
; it is not already on the target system. The AddService directive specifies
; WinUsb.sys as the devices function driver. These directives should not be
; modified.
[USB_Install.Services]
Include=winusb.inf
AddService=WinUSB,0x00000002,WinUSB_ServiceInstall
; The WinUSB_ServiceInstall section contains the data for installing WinUsb.sys
; as a service. This section should not be modified.
[WinUSB_ServiceInstall]
DisplayName = %WinUSB_SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WinUSB.sys
; The KmdfService directive installs WinUsb.sys as a kernel-mode service. The
; referenced WinUSB_Install section specifies the KMDF library version.
; Usually, the version can be derived from the WdfCoInstallerxxyyy.dll with
; xx = major, yyy = minor
[USB_Install.Wdf]
KmdfService=WINUSB, WinUsb_Install
[WinUSB_Install]
KmdfLibraryVersion=1.9
; USB_Install.HW is the key section in the INF. It specifies the device
; interface globally unique identifier (GUID) for your device. The AddReg
; directive puts the interface GUID in a standard registry value. When
; WinUsb.sys is loaded as the devices function driver, it reads the registry
; value and uses the specified GUID to represent the device interface. You
; should replace the GUID in this example with one that you create specifically
; for your device. If the protocols for the device change, you should create a
; new device interface GUID.
[USB_Install.HW]
AddReg=Dev_AddReg
[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,%DeviceGUID%
; The USB_Install.CoInstallers section, including the referenced AddReg and
; CopyFiles sections, contains data and instructions to install the WinUSB and
; KMDF co installers and associate them with the device. Most USB devices can
; use these sections and directives without modification.
[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles
[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller","WinUSBCoInstaller2.dll"
[CoInstallers_CopyFiles]
WinUSBCoInstaller2.dll
WdfCoInstaller01009.dll
[DestinationDirs]
CoInstallers_CopyFiles=11
; =============== Source Media Section ================
; The x86 and x64 versions of Windows have separate co installers. This example
; stores them on the installation disk in folders that are named x86 and amd64
[SourceDisksNames]
1 = %DiskName%,,,\x86
2 = %DiskName%,,,\amd64
[SourceDisksFiles.x86]
WinUSBCoInstaller2.dll=1
WdfCoInstaller01009.dll=1
[SourceDisksFiles.amd64]
WinUSBCoInstaller2.dll=2
WdfCoInstaller01009.dll=2

Binary file not shown.

Binary file not shown.