;****************************************************************
; ASIX AX88772C/772B/772A/772 USB2.0 to Fast Ethernet Adapter
;
; Copyright 2019, ASIX Electronics Corporation
;
;****************************************************************
[Version]
Signature	= "$Windows NT$"
Class		= Net
ClassGUID	= {4d36e972-e325-11ce-bfc1-08002be10318}
Provider	= %MSFT%
DriverVer = 12/13/2019,3.18.19.1213
PnpLockDown = 1

[Manufacturer]
%ASIX%   = USB, NTamd64

[ControlFlags]
ExcludeFromSelect = *

[USB.NTamd64]
%AX88772.DeviceDesc% = AX88772.Ndi,USB\VID_0B95&PID_7720
%AX88772A.DeviceDesc% = AX88772A.Ndi,USB\VID_0B95&PID_772A
%MSI.DeviceDesc% = AX88772A.Ndi,USB\VID_0DB0&PID_A877
%Nokia.DeviceDesc% = AX88772A.Ndi,USB\VID_0421&PID_772A
%MVCI.DeviceDesc% = AX88772.Ndi,USB\VID_125E&PID_180D
%AX88772B.DeviceDesc% = AX88772B.Ndi,USB\VID_0B95&PID_772B&REV_0001
%AX88772C.DeviceDesc% = AX88772B.Ndi,USB\VID_0B95&PID_772B&REV_0002
%AX88772B.DeviceDesc% = 7E2B.Ndi,USB\VID_0B95&PID_7E2B&REV_0001
%LenLan.DeviceDesc% = AX88772B.Ndi,USB\VID_17EF&PID_7203&REV_0001


;****************************************************************
[AX88772.Ndi]
AddReg          = AX88772.NT.Reg, AX88772.Common.Reg, AX88772.Con.Reg
Characteristics = 0x84
BusType         = 15
CopyFiles       = CopyFile.Sys
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[AX88772.Ndi.Services]
AddService = AX88772, 2, AX88772.Service, Common.EventLog

[AX88772A.Ndi]
AddReg          = AX88772.NT.Reg, AX88772.Common.Reg, AX88772A.Con.Reg
Characteristics = 0x84
BusType         = 15
CopyFiles       = CopyFile.Sys
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[AX88772A.Ndi.Services]
AddService = AX88772, 2, AX88772.Service, Common.EventLog

[AX88772B.Ndi]
AddReg          = AX88772.NT.Reg, AX88772.Common.Reg, AX88772B.Con.Reg, AX88772B.Adv.Reg
Characteristics = 0x84
BusType         = 15
CopyFiles       = CopyFile.Sys
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[AX88772B.Ndi.Services]
AddService = AX88772, 2, AX88772.Service, Common.EventLog

[7E2B.Ndi]
AddReg          = AX88772.NT.Reg, AX88772.Common.Reg, AX88772B.Con.Reg, 7E2B.Adv.Reg
Characteristics = 0x84
BusType         = 15
CopyFiles       = CopyFile.Sys
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[7E2B.Ndi.Services]
AddService = AX88772, 2, AX88772.Service, Common.EventLog

;****************************************************************
; Driver parameters
;****************************************************************

[AX88772.Common.Reg]
; Recover Mac
HKR, ,               RecoverMac,   0, "0"

; Speed & Duplex
HKR,Ndi\params\*SpeedDuplex,ParamDesc,,%SpeedDuplex%
HKR,Ndi\params\*SpeedDuplex,default,,"0"
HKR,Ndi\params\*SpeedDuplex,type,,"enum"
HKR,Ndi\params\*SpeedDuplex\enum,0,,%AutoSense%
HKR,Ndi\params\*SpeedDuplex\enum,1,,%10Half%
HKR,Ndi\params\*SpeedDuplex\enum,2,,%10Full%
HKR,Ndi\params\*SpeedDuplex\enum,3,,%100Half%
HKR,Ndi\params\*SpeedDuplex\enum,4,,%100Full%

; Mac Address
HKR,Ndi\params\NetworkAddress,ParamDesc,0,%NetworkAddress%
HKR,Ndi\params\NetworkAddress,type,0,"edit"
HKR,Ndi\params\NetworkAddress,default,0, "000000000000"
HKR,Ndi\params\NetworkAddress,LimitText,0,"12"
HKR,Ndi\params\NetworkAddress,UpperCase,0,"1"
HKR,Ndi\params\NetworkAddress,Optional,0,"1"

; Flow Control
HKR,,*FlowControl,,"3"
HKR,Ndi\params\*FlowControl,ParamDesc,,%FlowControl%
HKR,Ndi\params\*FlowControl,default,,"3"
HKR,Ndi\params\*FlowControl,type,,"enum"
HKR,Ndi\params\*FlowControl\enum,0,,%Disabled%
HKR,Ndi\params\*FlowControl\enum,1,,%TxEnabled%
HKR,Ndi\params\*FlowControl\enum,2,,%RxEnabled%
HKR,Ndi\params\*FlowControl\enum,3,,%TxRxEnabled%


; Packet Priority & VLAN
HKR,Ndi\params\*PriorityVLANTag,ParamDesc,,"Packet Priority & VLAN"
HKR,Ndi\params\*PriorityVLANTag,default,,"3"
HKR,Ndi\params\*PriorityVLANTag,type,,"enum"
HKR,Ndi\params\*PriorityVLANTag\enum,0,,"Packet Priority & VLAN Disabled"
HKR,Ndi\params\*PriorityVLANTag\enum,1,,"Packet Priority Enabled"
HKR,Ndi\params\*PriorityVLANTag\enum,2,,"VLAN Enabled"
HKR,Ndi\params\*PriorityVLANTag\enum,3,,"Packet Priority & VLAN Enabled"

[AX88772.Con.Reg]
HKR, ,               ChipCode,   0, "0"

; Wake On Magic Packet
HKR,Ndi\params\*WakeOnMagicPacket,ParamDesc,,%WakeOnMagicPacket%
HKR,Ndi\params\*WakeOnMagicPacket,default,,"1"
HKR,Ndi\params\*WakeOnMagicPacket,type,,"enum"
HKR,Ndi\params\*WakeOnMagicPacket\enum,0,,%Disabled%
HKR,Ndi\params\*WakeOnMagicPacket\enum,1,,%Enabled%

[AX88772A.Con.Reg]
HKR, ,               ChipCode,   0, "1"

; Wake On Magic Packet
HKR,Ndi\params\*WakeOnMagicPacket,ParamDesc,,%WakeOnMagicPacket%
HKR,Ndi\params\*WakeOnMagicPacket,default,,"1"
HKR,Ndi\params\*WakeOnMagicPacket,type,,"enum"
HKR,Ndi\params\*WakeOnMagicPacket\enum,0,,%Disabled%
HKR,Ndi\params\*WakeOnMagicPacket\enum,1,,%Enabled%

; Wake On Pattern Match
HKR,Ndi\params\*WakeOnPattern,ParamDesc,,%WakeOnPattern%
HKR,Ndi\params\*WakeOnPattern,default,,"1"
HKR,Ndi\params\*WakeOnPattern,type,,"enum"
HKR,Ndi\params\*WakeOnPattern\enum,0,,%Disabled%
HKR,Ndi\params\*WakeOnPattern\enum,1,,%Enabled%

;VLAN ID
HKR, Ndi\Params\VLAN_ID,  ParamDesc,  , %VLANID%
HKR, Ndi\Params\VLAN_ID,  Type,       , "int"
HKR, Ndi\Params\VLAN_ID,  Default,    , "0"
HKR, Ndi\params\VLAN_ID,  min,        , "0"
HKR, Ndi\params\VLAN_ID,  max,        , "4095"
HKR, Ndi\params\VLAN_ID,  step,       , "1"
HKR, NDI\params\VLAN_ID,  UpperCase,  , "1"
HKR, NDI\params\VLAN_ID,  optional,   , "1"

[AX88772B.Con.Reg]
HKR, ,               ChipCode,   0, "2"

; Selective suspend
HKR,Ndi\params\*SelectiveSuspend,ParamDesc,,"SelectiveSuspend"
HKR,Ndi\params\*SelectiveSuspend,default,,"0"
HKR,Ndi\params\*SelectiveSuspend,type,,"enum"
HKR,Ndi\params\*SelectiveSuspend\enum,0,,%Disabled%
HKR,Ndi\params\*SelectiveSuspend\enum,1,,%Enabled%

; Selective suspend time out value
HKR,Ndi\Params\*SSIdleTimeout,      ParamDesc,  0, "SSIdleTimeout"
HKR,Ndi\Params\*SSIdleTimeout,      Type,       0, "int"
HKR,Ndi\Params\*SSIdleTimeout,      Default,    0, "5"
HKR,Ndi\Params\*SSIdleTimeout,      Min,        0, "1"
HKR,Ndi\Params\*SSIdleTimeout,      Max,        0, "60"
HKR,Ndi\Params\*SSIdleTimeout,      Step,       0, "1"
HKR,Ndi\Params\*SSIdleTimeout,      Base,       0, "10"

;VLAN ID
HKR, Ndi\Params\VLAN_ID,  ParamDesc,  , %VLANID%
HKR, Ndi\Params\VLAN_ID,  Type,       , "int"
HKR, Ndi\Params\VLAN_ID,  Default,    , "0"
HKR, Ndi\params\VLAN_ID,  min,        , "0"
HKR, Ndi\params\VLAN_ID,  max,        , "4095"
HKR, Ndi\params\VLAN_ID,  step,       , "1"
HKR, NDI\params\VLAN_ID,  UpperCase,  , "1"
HKR, NDI\params\VLAN_ID,  optional,   , "1"

; TCP Checksum offload V4
HKR, Ndi\params\*TCPChecksumOffloadIPv4,ParamDesc,0,"%TCPChecksumOffloadV4%"	
HKR, Ndi\params\*TCPChecksumOffloadIPv4,default,0,"3"
HKR, Ndi\params\*TCPChecksumOffloadIPv4,type,0,"enum"
HKR, Ndi\params\*TCPChecksumOffloadIPv4\enum,"0",0,"%Disabled%"
HKR, Ndi\params\*TCPChecksumOffloadIPv4\enum,"1",0,"%TxEnabled%"
HKR, Ndi\params\*TCPChecksumOffloadIPv4\enum,"2",0,"%RxEnabled%"
HKR, Ndi\params\*TCPChecksumOffloadIPv4\enum,"3",0,"%TxRxEnabled%"

; UDP Checksum offload V4
HKR, Ndi\params\*UDPChecksumOffloadIPv4,ParamDesc,0,"%UDPChecksumOffloadV4%"	
HKR, Ndi\params\*UDPChecksumOffloadIPv4,default,0,"3"
HKR, Ndi\params\*UDPChecksumOffloadIPv4,type,0,"enum"
HKR, Ndi\params\*UDPChecksumOffloadIPv4\enum,"0",0,"%Disabled%"
HKR, Ndi\params\*UDPChecksumOffloadIPv4\enum,"1",0,"%TxEnabled%"
HKR, Ndi\params\*UDPChecksumOffloadIPv4\enum,"2",0,"%RxEnabled%"
HKR, Ndi\params\*UDPChecksumOffloadIPv4\enum,"3",0,"%TxRxEnabled%"

; TCP Checksum offload V6
HKR, Ndi\params\*TCPChecksumOffloadIPv6,ParamDesc,0,"%TCPChecksumOffloadV6%"	
HKR, Ndi\params\*TCPChecksumOffloadIPv6,default,0,"3"
HKR, Ndi\params\*TCPChecksumOffloadIPv6,type,0,"enum"
HKR, Ndi\params\*TCPChecksumOffloadIPv6\enum,"0",0,"%Disabled%"
HKR, Ndi\params\*TCPChecksumOffloadIPv6\enum,"1",0,"%TxEnabled%"
HKR, Ndi\params\*TCPChecksumOffloadIPv6\enum,"2",0,"%RxEnabled%"
HKR, Ndi\params\*TCPChecksumOffloadIPv6\enum,"3",0,"%TxRxEnabled%"

; UDP Checksum offload V6
HKR, Ndi\params\*UDPChecksumOffloadIPv6,ParamDesc,0,"%UDPChecksumOffloadV6%"	
HKR, Ndi\params\*UDPChecksumOffloadIPv6,default,0,"3"
HKR, Ndi\params\*UDPChecksumOffloadIPv6,type,0,"enum"
HKR, Ndi\params\*UDPChecksumOffloadIPv6\enum,"0",0,"%Disabled%"
HKR, Ndi\params\*UDPChecksumOffloadIPv6\enum,"1",0,"%TxEnabled%"
HKR, Ndi\params\*UDPChecksumOffloadIPv6\enum,"2",0,"%RxEnabled%"
HKR, Ndi\params\*UDPChecksumOffloadIPv6\enum,"3",0,"%TxRxEnabled%"

; IP Checksum offload V4
HKR, Ndi\params\*IPChecksumOffloadIPv4,ParamDesc,0,"%IPChecksumOffloadV4%" 
HKR, Ndi\params\*IPChecksumOffloadIPv4,default,0,"3"
HKR, Ndi\params\*IPChecksumOffloadIPv4,type,0,"enum"
HKR, Ndi\params\*IPChecksumOffloadIPv4\enum,"0",0,"%Disabled%"
HKR, Ndi\params\*IPChecksumOffloadIPv4\enum,"1",0,"%TxEnabled%"
HKR, Ndi\params\*IPChecksumOffloadIPv4\enum,"2",0,"%RxEnabled%"
HKR, Ndi\params\*IPChecksumOffloadIPv4\enum,"3",0,"%TxRxEnabled%"

; ARP offload
HKR,Ndi\params\*PMARPOffload,ParamDesc,,%ArpOffload%
HKR,Ndi\params\*PMARPOffload,default,,"1"
HKR,Ndi\params\*PMARPOffload,type,,"enum"
HKR,Ndi\params\*PMARPOffload\enum,0,,%Disabled%
HKR,Ndi\params\*PMARPOffload\enum,1,,%Enabled%

; NS offload
HKR,Ndi\params\*PMNSOffload,ParamDesc,,%NsOffload%
HKR,Ndi\params\*PMNSOffload,default,,"1"
HKR,Ndi\params\*PMNSOffload,type,,"enum"
HKR,Ndi\params\*PMNSOffload\enum,0,,%Disabled%
HKR,Ndi\params\*PMNSOffload\enum,1,,%Enabled%

; AutoDetach
HKR, Ndi\params\AutoDetach,ParamDesc,0,"%AutoDetach%" 
HKR, Ndi\params\AutoDetach,default,0,"0"
HKR, Ndi\params\AutoDetach,type,0,"enum"
HKR, Ndi\params\AutoDetach\enum,"0",0,"%Disabled%"
HKR, Ndi\params\AutoDetach\enum,"1",0,"%Enabled%"
HKR, Ndi\params\AutoDetach\enum,"2",0,"%UseEeprom%"

; WOL Link Speed
HKR, Ndi\params\WolLinkSpeed,ParamDesc,0,"%WolLinkSpeed%" 
HKR, Ndi\params\WolLinkSpeed,default,0,"1"
HKR, Ndi\params\WolLinkSpeed,type,0,"enum"
HKR, Ndi\params\WolLinkSpeed\enum,"0",0,"%10mFirst%"
HKR, Ndi\params\WolLinkSpeed\enum,"1",0,"%UseEeprom%"

; Mask WakeUp Event Timer
HKR, Ndi\params\MaskTimer,ParamDesc,0,"%MaskTimer%" 
HKR, Ndi\Params\MaskTimer,default,0,"1"
HKR, Ndi\Params\MaskTimer,type,0,"enum"
HKR, Ndi\params\MaskTimer\enum,"0",0,"%0sec%"
HKR, Ndi\params\MaskTimer\enum,"1",0,"%4sec%"
HKR, Ndi\params\MaskTimer\enum,"2",0,"%8sec%"
HKR, Ndi\params\MaskTimer\enum,"3",0,"%12sec%"
HKR, Ndi\params\MaskTimer\enum,"4",0,"%16sec%"
HKR, Ndi\params\MaskTimer\enum,"5",0,"%20sec%"
HKR, Ndi\params\MaskTimer\enum,"6",0,"%24sec%"
HKR, Ndi\params\MaskTimer\enum,"7",0,"%28sec%"

; Wake On Magic Packet
HKR,Ndi\params\*WakeOnMagicPacket,ParamDesc,,%WakeOnMagicPacket%
HKR,Ndi\params\*WakeOnMagicPacket,default,,"1"
HKR,Ndi\params\*WakeOnMagicPacket,type,,"enum"
HKR,Ndi\params\*WakeOnMagicPacket\enum,0,,%Disabled%
HKR,Ndi\params\*WakeOnMagicPacket\enum,1,,%Enabled%

; Wake On Pattern Match
HKR,Ndi\params\*WakeOnPattern,ParamDesc,,%WakeOnPattern%
HKR,Ndi\params\*WakeOnPattern,default,,"1"
HKR,Ndi\params\*WakeOnPattern,type,,"enum"
HKR,Ndi\params\*WakeOnPattern\enum,0,,%Disabled%
HKR,Ndi\params\*WakeOnPattern\enum,1,,%Enabled%

; Wake On Media
HKR,Ndi\params\*DeviceSleepOnDisconnect,ParamDesc,,"Device sleep on disconnect"
HKR,Ndi\params\*DeviceSleepOnDisconnect,default,,"1"
HKR,Ndi\params\*DeviceSleepOnDisconnect,type,,"enum"
HKR,Ndi\params\*DeviceSleepOnDisconnect\enum,0,,%Disabled%
HKR,Ndi\params\*DeviceSleepOnDisconnect\enum,1,,%Enabled%

[AX88772B.Adv.Reg]
; Burst Level
HKR, Ndi\params\BurstLevel,ParamDesc,0,"Burst Level" 
HKR, Ndi\params\BurstLevel,default,0,"0"
HKR, Ndi\params\BurstLevel,type,0,"enum"
HKR, Ndi\params\BurstLevel\enum,"0",0,"High"
HKR, Ndi\params\BurstLevel\enum,"1",0,"Middle"
HKR, Ndi\params\BurstLevel\enum,"2",0,"Disabled"

[7E2B.Adv.Reg]
; Burst Level
HKR, Ndi\params\BurstLevel,ParamDesc,0,"Burst Level" 
HKR, Ndi\params\BurstLevel,default,0,"1"
HKR, Ndi\params\BurstLevel,type,0,"enum"
HKR, Ndi\params\BurstLevel\enum,"0",0,"High"
HKR, Ndi\params\BurstLevel\enum,"1",0,"Middle"
HKR, Ndi\params\BurstLevel\enum,"2",0,"Disabled"

;****************************************************************
; Install section
;****************************************************************
[AX88772.NT.Reg]
; Interfaces
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
HKR, Ndi,            Service,    0, "AX88772"

[AX88772.Service]
DisplayName    = %AX88772.DeviceDesc%
ServiceType    = 1
StartType      = 3
ErrorControl   = 1
ServiceBinary  = %13%\ax88772.sys

[Common.EventLog]
AddReg = Common.AddEventLog.Reg

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

[CopyFile.Sys]
ax88772.sys,,,2


;**********************************************************************
; Destination directories
;**********************************************************************
[DestinationDirs]
CopyFile.Sys	= 13

[SourceDisksNames]
1=%AX88772.DiskName%,,

[SourceDisksFiles]
ax88772.sys = 1

;**********************************************************************
; Localizable strings
;**********************************************************************
[Strings]
ASIX = "ASIX"
AX88772.DiskName = "USB2.0 to Fast Ethernet Driver Diskette"
AX88772.DeviceDesc = "ASIX AX88772 USB2.0 to Fast Ethernet Adapter"
AX88772A.DeviceDesc = "ASIX AX88772A USB2.0 to Fast Ethernet Adapter"
MSI.DeviceDesc = "MSI USB Network Controller"
Nokia.DeviceDesc = "Nokia Connectivity Adapter for USB to LAN AD-73"
MVCI.DeviceDesc = "SPX-MVCI"
AX88772B.DiskName = "USB2.0 to Fast Ethernet Driver Diskette"
AX88772B.DeviceDesc = "ASIX AX88772B USB2.0 to Fast Ethernet Adapter"
AX88772C.DeviceDesc = "ASIX AX88772C USB2.0 to Fast Ethernet Adapter"
LenLan.DeviceDesc = "Lenovo USB2.0 Ethernet Adapter"
MSFT = "Microsoft"

SpeedDuplex            = "Speed & Duplex"
AutoSense              = "Auto Negotiation"
10Half                 = "10 Mbps Half Duplex"
10Full                 = "10 Mbps Full Duplex"
100Half                = "100 Mbps Half Duplex"
100Full                = "100 Mbps Full Duplex"
NetworkAddress         = "NetworkAddress"
FlowControl            = "Flow Control"
Disabled               = "Disabled"
Enabled                = "Enabled"
TxEnabled              = "Tx Enabled"
RxEnabled              = "Rx Enabled"
TxRxEnabled            = "Rx & Tx Enabled"
WakeOnLinkChange       = "Wake on link change"
WakeOnMagicPacket      = "Wake on Magic Packet"
WakeOnPattern          = "Wake on pattern match"
VLANID                 = "VLAN ID"
TCPChecksumOffloadV4   = "TCP Checksum Offload (IPv4)"
UDPChecksumOffloadV4   = "UDP Checksum Offload (IPv4)"
TCPChecksumOffloadV6   = "TCP Checksum Offload (IPv6)"
UDPChecksumOffloadV6   = "UDP Checksum Offload (IPv6)"
IPChecksumOffloadV4    = "IPv4 Checksum Offload"
AutoDetach             = "AutoDetach"
UseEeprom              = "Use EEPROM Setting"
WolLinkSpeed           = "WOL Link Speed"
10mFirst               = "10 Mbps First"
MaskTimer              = "Mask WakeUp Event Timer"
0sec                   = "0 second"
4sec                   = "4 seconds"
8sec                   = "8 seconds"
12sec                  = "12 seconds"
16sec                  = "16 seconds"
20sec                  = "20 seconds"
24sec                  = "24 seconds"
28sec                  = "28 seconds"
ARPOffload             = "ARP Offload"
NsOffload              = "NS Offload"
