; MS-Windows driver config matching some basic modes of the
; Linux-USB Ethernet/RNDIS gadget firmware:
;
;  - RNDIS plus CDC Ethernet ... this may be familiar as a DOCSIS
;    cable modem profile, and supports most non-Microsoft USB hosts
;
;  - RNDIS plus CDC Subset ... used by hardware that incapable of
;    full CDC Ethernet support.
;
; Microsoft only directly supports RNDIS drivers, and bundled them into XP.
; The Microsoft "Remote NDIS USB Driver Kit" is currently found at:
;   http://www.microsoft.com/whdc/hwdev/resources/HWservices/rndis.mspx


[Version]
Signature           = "$CHICAGO$"
Class               = Net
ClassGUID           = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider            = %Linux%
Compatible          = 1
MillenniumPreferred = .ME
DriverVer           = 03/30/2004,0.0.0.0
; catalog file would be used by WHQL
;CatalogFile         = Linux.cat

[Manufacturer]
%Linux%          = LinuxDevices,NT.5.1

[LinuxDevices]
; NetChip IDs, used by both firmware modes
%LinuxDevice%    = RNDIS, USB\VID_0525&PID_a4a2

[LinuxDevices.NT.5.1]
%LinuxDevice%    = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2

[ControlFlags]
ExcludeFromSelect=*

; Windows 98, Windows 98 Second Edition specific sections --------

[RNDIS]
DeviceID        = usb8023
MaxInstance     = 512
DriverVer           = 03/30/2004,0.0.0.0
AddReg          = RNDIS_AddReg_98, RNDIS_AddReg_Common

[RNDIS_AddReg_98]
HKR, ,               DevLoader,        0, *ndis
HKR, ,               DeviceVxDs,       0, usb8023.sys
HKR, NDIS,           LogDriverName,    0, "usb8023"
HKR, NDIS,           MajorNdisVersion, 1, 5
HKR, NDIS,           MinorNdisVersion, 1, 0
HKR, Ndi\Interfaces, DefUpper,         0, "ndis3,ndis4,ndis5"
HKR, Ndi\Interfaces, DefLower,         0, "ethernet"
HKR, Ndi\Interfaces, UpperRange,       0, "ndis3,ndis4,ndis5"
HKR, Ndi\Interfaces, LowerRange,       0, "ethernet"
HKR, Ndi\Install,    ndis3,            0, "RNDIS_Install_98"
HKR, Ndi\Install,    ndis4,            0, "RNDIS_Install_98"
HKR, Ndi\Install,    ndis5,            0, "RNDIS_Install_98"
HKR, Ndi,            DeviceId,         0, "USB\VID_0525&PID_a4a2"

[RNDIS_Install_98]
CopyFiles=RNDIS_CopyFiles_98

[RNDIS_CopyFiles_98]
usb8023.sys, usb8023w.sys, , 0 
rndismp.sys, rndismpw.sys, , 0 

; Windows Millennium Edition specific sections --------------------

[RNDIS.ME]
DeviceID        = usb8023
MaxInstance     = 512
DriverVer           = 03/30/2004,0.0.0.0
AddReg          = RNDIS_AddReg_ME, RNDIS_AddReg_Common
Characteristics = 0x84   ; NCF_PHYSICAL + NCF_HAS_UI
BusType         = 15

[RNDIS_AddReg_ME]
HKR, ,               DevLoader,        0, *ndis
HKR, ,               DeviceVxDs,       0, usb8023.sys
HKR, NDIS,           LogDriverName,    0, "usb8023"
HKR, NDIS,           MajorNdisVersion, 1, 5
HKR, NDIS,           MinorNdisVersion, 1, 0
HKR, Ndi\Interfaces, DefUpper,         0, "ndis3,ndis4,ndis5"
HKR, Ndi\Interfaces, DefLower,         0, "ethernet"
HKR, Ndi\Interfaces, UpperRange,       0, "ndis3,ndis4,ndis5"
HKR, Ndi\Interfaces, LowerRange,       0, "ethernet"
HKR, Ndi\Install,    ndis3,            0, "RNDIS_Install_ME"
HKR, Ndi\Install,    ndis4,            0, "RNDIS_Install_ME"
HKR, Ndi\Install,    ndis5,            0, "RNDIS_Install_ME"
HKR, Ndi,            DeviceId,         0, "USB\VID_0525&PID_a4a2"

[RNDIS_Install_ME]
CopyFiles=RNDIS_CopyFiles_ME

[RNDIS_CopyFiles_ME]
usb8023.sys, usb8023m.sys, , 0 
rndismp.sys, rndismpm.sys, , 0 

; Windows 2000 specific sections ---------------------------------

[RNDIS.NT]
Characteristics = 0x84   ; NCF_PHYSICAL + NCF_HAS_UI
BusType         = 15
DriverVer           = 03/30/2004,0.0.0.0
AddReg          = RNDIS_AddReg_NT, RNDIS_AddReg_Common
CopyFiles       = RNDIS_CopyFiles_NT

[RNDIS.NT.Services]
AddService = USB_RNDIS, 2, RNDIS_ServiceInst_NT, RNDIS_EventLog

[RNDIS_CopyFiles_NT]
; no rename of files on Windows 2000, use the 'k' names as is
usb8023k.sys, , , 0 
rndismpk.sys, , , 0 

[RNDIS_ServiceInst_NT]
DisplayName     = %ServiceDisplayName%
ServiceType     = 1 
StartType       = 3 
ErrorControl    = 1 
ServiceBinary   = %12%\usb8023k.sys    
LoadOrderGroup  = NDIS
AddReg          = RNDIS_WMI_AddReg_NT

[RNDIS_WMI_AddReg_NT]
HKR, , MofImagePath, 0x00020000, "System32\drivers\rndismpk.sys"

; Windows XP specific sections -----------------------------------

[RNDIS.NT.5.1]
Characteristics = 0x84   ; NCF_PHYSICAL + NCF_HAS_UI
BusType         = 15
DriverVer           = 03/30/2004,0.0.0.0
AddReg          = RNDIS_AddReg_NT, RNDIS_AddReg_Common
; no copyfiles - the files are already in place

[RNDIS.NT.5.1.Services]
AddService      = USB_RNDIS, 2, RNDIS_ServiceInst_51, RNDIS_EventLog

[RNDIS_ServiceInst_51]
DisplayName     = %ServiceDisplayName%
ServiceType     = 1 
StartType       = 3 
ErrorControl    = 1 
ServiceBinary   = %12%\usb8023.sys    
LoadOrderGroup  = NDIS
AddReg          = RNDIS_WMI_AddReg_51

[RNDIS_WMI_AddReg_51]
HKR, , MofImagePath, 0x00020000, "System32\drivers\rndismp.sys"

; Windows 2000 and Windows XP common sections --------------------

[RNDIS_AddReg_NT]
HKR, Ndi,               Service,        0, "USB_RNDIS"
HKR, Ndi\Interfaces,    UpperRange,     0, "ndis5" 
HKR, Ndi\Interfaces,    LowerRange,     0, "ethernet"

[RNDIS_EventLog]
AddReg = RNDIS_EventLog_AddReg

[RNDIS_EventLog_AddReg]
HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll"
HKR, , TypesSupported,   0x00010001, 7

; Common Sections -------------------------------------------------

[RNDIS_AddReg_Common]
HKR, NDI\params\NetworkAddress, ParamDesc,  0, %NetworkAddress%
HKR, NDI\params\NetworkAddress, type,       0, "edit"
HKR, NDI\params\NetworkAddress, LimitText,  0, "12"
HKR, NDI\params\NetworkAddress, UpperCase,  0, "1"
HKR, NDI\params\NetworkAddress, default,    0, " "
HKR, NDI\params\NetworkAddress, optional,   0, "1"

[SourceDisksNames]
1=%SourceDisk%,,1

[SourceDisksFiles]
usb8023m.sys=1
rndismpm.sys=1
usb8023w.sys=1
rndismpw.sys=1
usb8023k.sys=1
rndismpk.sys=1

[DestinationDirs]
RNDIS_CopyFiles_98    = 10, system32/drivers
RNDIS_CopyFiles_ME    = 10, system32/drivers
RNDIS_CopyFiles_NT    = 12

[Strings]
ServiceDisplayName    = "USB Remote NDIS Network Device Driver"
NetworkAddress        = "Network Address"
Linux                 = "Linux Developer Community"
LinuxDevice           = "Linux USB Ethernet/RNDIS Gadget"
SourceDisk            = "Ethernet/RNDIS Gadget Driver Install Disk"