;
; File Name: C7xrUSB.inf
; Integrated USB Driver installation file for CMC7xx (WiBro and mWiMAX)
;
; File created on 24/05/2010
;
; Copyright (c) 2007-2010 Samsung Electronics

;--------- Version Section ---------------------------------------------------
[Version]
Signature   = "$WINDOWS NT$"
Class	    = Net
ClassGUID   = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider    = %Provider%
DriverVer   = 05/24/2010, 3.39.0524
CatalogFile = C7xrUSB.cat

;--------- DestinationDirs Section -------------------------------------------
[DestinationDirs]
DefaultDestDir 			 = 10
C7xxUSB_Files_Driver.ntx86 	 = 12
C7xxUSB_Files_Driver.ntx86.6.0 	 = 12
C7xxUSB_Files_Driver.ntamd64.6.0 = 12
C7xxUSB_Files_Driver.ntx86.6.1 	 = 12
C7xxUSB_Files_Driver.ntamd64.6.1 = 12

;--------- SourceDiskNames and SourceDiskFiles Section -----------------------
; These sections identify source disks and files for installation.
[SourceDisksNames]
1 = %DiskId1%,,,""

[SourceDisksFiles]
C7rUSBX3.sys   = 1,.\NT32,
C7rUSBV3.sys   = 1,.\VT32,
C7rUSBV6.sys   = 1,.\VT64,
C7rUSB73.sys   = 1,.\W732,
C7rUSB76.sys   = 1,.\W764,

;--------- Manufacturer and Models Sections ----------------------------------
[Manufacturer]
%MfgName% = C7xxUSB_Mfg, ntx86.6.0, ntamd64.6.0, ntx86.6.1, ntamd64.6.1

[C7xxUSB_Mfg]
; DisplayName          Section		         DeviceId
%WiMAX_DeviceDesc% = C7xxUSB.ntx86,	  USB\VID_04E8&PID_6887		; Samsung SWD-S500
%WiMAX_DeviceDesc% = C7xxUSB.ntx86,	  USB\VID_04E8&PID_689B		; Samsung SPH-D700
%WiMAX_DeviceDesc% = C7xxUSB.ntx86,	  USB\VID_04E8&PID_68A7		; Download Mode

[C7xxUSB_Mfg.ntx86.6.0]
; DisplayName          Section		         DeviceId
%WiMAX_DeviceDesc% = C7xxUSB.ntx86.6.0,	  USB\VID_04E8&PID_6887		; Samsung SWD-S500
%WiMAX_DeviceDesc% = C7xxUSB.ntx86.6.0,	  USB\VID_04E8&PID_689B		; Samsung SPH-D700
%WiMAX_DeviceDesc% = C7xxUSB.ntx86.6.0,	  USB\VID_04E8&PID_68A7		; Download Mode

[C7xxUSB_Mfg.ntamd64.6.0]
; DisplayName          Section                   DeviceId
%WiMAX_DeviceDesc% = C7xxUSB.ntamd64.6.0, USB\VID_04E8&PID_6887		; Samsung SWD-S500
%WiMAX_DeviceDesc% = C7xxUSB.ntamd64.6.0, USB\VID_04E8&PID_689B		; Samsung SPH-D700
%WiMAX_DeviceDesc% = C7xxUSB.ntamd64.6.0, USB\VID_04E8&PID_68A7		; Download Mode

[C7xxUSB_Mfg.ntx86.6.1]
; DisplayName          Section		         DeviceId
%WiMAX_DeviceDesc% = C7xxUSB.ntx86.6.1,	  USB\VID_04E8&PID_6887		; Samsung SWD-S500
%WiMAX_DeviceDesc% = C7xxUSB.ntx86.6.1,	  USB\VID_04E8&PID_689B		; Samsung SPH-D700
%WiMAX_DeviceDesc% = C7xxUSB.ntx86.6.1,	  USB\VID_04E8&PID_68A7		; Download Mode

[C7xxUSB_Mfg.ntamd64.6.1]
; DisplayName          Section                   DeviceId
%WiMAX_DeviceDesc% = C7xxUSB.ntamd64.6.1, USB\VID_04E8&PID_6887		; Samsung SWD-S500
%WiMAX_DeviceDesc% = C7xxUSB.ntamd64.6.1, USB\VID_04E8&PID_689B		; Samsung SPH-D700
%WiMAX_DeviceDesc% = C7xxUSB.ntamd64.6.1, USB\VID_04E8&PID_68A7		; Download Mode

; --------- Windows XP 32 -----------------
; WiBro Adapter
[C7xxUSB.ntx86]
Characteristics = 0x84          					; NCF_HAS_UI & NCF_PHYSICAL
BusType		= 15							; PnP bus
CopyFiles	= C7xxUSB_Files_Driver.ntx86
AddReg		= C7xxUSB.reg, C7xxUSB.params.reg, C7xxUSBk.params.reg

[C7xxUSB.ntx86.Services]
AddService = C7xxUSB, %FLG_ADDREG_NOCLOBBER%, C7xxUSB_Service.ntx86, C7xxUSB.EventLog

; mWiMAX Adapter
[C7xxUSBw.ntx86]
Characteristics = 0x84          					; NCF_HAS_UI & NCF_PHYSICAL
BusType		= 15							; PnP bus
CopyFiles	= C7xxUSB_Files_Driver.ntx86
AddReg		= C7xxUSB.reg, C7xxUSB.params.reg, C7xxUSBw.params.reg

[C7xxUSBw.ntx86.Services]
AddService = C7xxUSB, %FLG_ADDREG_NOCLOBBER%, C7xxUSB_Service.ntx86, C7xxUSB.EventLog

; same for all adapters
[C7xxUSB_Service.ntx86]
DisplayName    = %C7xxUSB_SvcDesc%
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_DEMAND_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\C7rUSBX3.sys
LoadOrderGroup = NDIS

[C7xxUSB_Files_Driver.ntx86]
C7rUSBX3.sys,,,2

; --------- Windows Vista 32 -----------------
; WiBro Adapter
[C7xxUSB.ntx86.6.0]
Characteristics = 0x84          					; NCF_HAS_UI & NCF_PHYSICAL
BusType		= 15							; PnP bus
CopyFiles	= C7xxUSB_Files_Driver.ntx86.6.0
AddReg		= C7xxUSB.reg, C7xxUSB.params.reg, C7xxUSBk.params.reg

[C7xxUSB.ntx86.6.0.Services]
AddService = C7xxUSB, %FLG_ADDREG_NOCLOBBER%, C7xxUSB_Service.ntx86.6.0, C7xxUSB.EventLog

; mWiMAX Adapter
[C7xxUSBw.ntx86.6.0]
Characteristics = 0x84          					; NCF_HAS_UI & NCF_PHYSICAL
BusType		= 15							; PnP bus
CopyFiles	= C7xxUSB_Files_Driver.ntx86.6.0
AddReg		= C7xxUSB.reg, C7xxUSB.params.reg, C7xxUSBw.params.reg

[C7xxUSBw.ntx86.6.0.Services]
AddService = C7xxUSB, %FLG_ADDREG_NOCLOBBER%, C7xxUSB_Service.ntx86.6.0, C7xxUSB.EventLog

; same for all adapters 
[C7xxUSB_Service.ntx86.6.0]
DisplayName    = %C7xxUSB_SvcDesc%
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_DEMAND_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\C7rUSBV3.sys
LoadOrderGroup = NDIS

[C7xxUSB_Files_Driver.ntx86.6.0]
C7rUSBV3.sys,,,2

; --------- Windows Vista 64 -----------------
; WiBro Adapter
[C7xxUSB.ntamd64.6.0]
Characteristics = 0x84          					; NCF_HAS_UI & NCF_PHYSICAL
BusType		= 15							; PnP bus
CopyFiles	= C7xxUSB_Files_Driver.ntamd64.6.0
AddReg		= C7xxUSB.reg, C7xxUSB.params.reg, C7xxUSBk.params.reg

[C7xxUSB.ntamd64.6.0.Services]
AddService = C7xxUSB, %FLG_ADDREG_NOCLOBBER%, C7xxUSB_Service.ntamd64.6.0, C7xxUSB.EventLog

; mWiMAX Adapter
[C7xxUSBw.ntamd64.6.0]
Characteristics = 0x84          					; NCF_HAS_UI & NCF_PHYSICAL
BusType		= 15							; PnP bus
CopyFiles	= C7xxUSB_Files_Driver.ntamd64.6.0
AddReg		= C7xxUSB.reg, C7xxUSB.params.reg, C7xxUSBw.params.reg

[C7xxUSBw.ntamd64.6.0.Services]
AddService = C7xxUSB, %FLG_ADDREG_NOCLOBBER%, C7xxUSB_Service.ntamd64.6.0, C7xxUSB.EventLog

; same for all adapters
[C7xxUSB_Service.ntamd64.6.0]
DisplayName    = %C7xxUSB_SvcDesc%
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_DEMAND_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\C7rUSBV6.sys
LoadOrderGroup = NDIS

[C7xxUSB_Files_Driver.ntamd64.6.0]
C7rUSBV6.sys,,,2

; --------- Windows 7 32-bit -----------------
; WiBro Adapter
[C7xxUSB.ntx86.6.1]
Characteristics = 0x84          					; NCF_HAS_UI & NCF_PHYSICAL
BusType		= 15							; PnP bus
CopyFiles	= C7xxUSB_Files_Driver.ntx86.6.1
AddReg		= C7xxUSB.reg, C7xxUSB.params.reg, C7xxUSBk.params.reg

[C7xxUSB.ntx86.6.1.Services]
AddService = C7xxUSB, %FLG_ADDREG_NOCLOBBER%, C7xxUSB_Service.ntx86.6.1, C7xxUSB.EventLog

; mWiMAX Adapter
[C7xxUSBw.ntx86.6.1]
Characteristics = 0x84          					; NCF_HAS_UI & NCF_PHYSICAL
BusType		= 15							; PnP bus
CopyFiles	= C7xxUSB_Files_Driver.ntx86.6.1
AddReg		= C7xxUSB.reg, C7xxUSB.params.reg, C7xxUSBw.params.reg

[C7xxUSBw.ntx86.6.1.Services]
AddService = C7xxUSB, %FLG_ADDREG_NOCLOBBER%, C7xxUSB_Service.ntx86.6.1, C7xxUSB.EventLog

; same for all adapters 
[C7xxUSB_Service.ntx86.6.1]
DisplayName    = %C7xxUSB_SvcDesc%
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_DEMAND_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\C7rUSB73.sys
LoadOrderGroup = NDIS

[C7xxUSB_Files_Driver.ntx86.6.1]
C7rUSB73.sys,,,2

; --------- Windows 7 64-bit -----------------
; WiBro Adapter
[C7xxUSB.ntamd64.6.1]
Characteristics = 0x84          					; NCF_HAS_UI & NCF_PHYSICAL
BusType		= 15							; PnP bus
CopyFiles	= C7xxUSB_Files_Driver.ntamd64.6.1
AddReg		= C7xxUSB.reg, C7xxUSB.params.reg, C7xxUSBk.params.reg

[C7xxUSB.ntamd64.6.1.Services]
AddService = C7xxUSB, %FLG_ADDREG_NOCLOBBER%, C7xxUSB_Service.ntamd64.6.1, C7xxUSB.EventLog

; mWiMAX Adapter
[C7xxUSBw.ntamd64.6.1]
Characteristics = 0x84          					; NCF_HAS_UI & NCF_PHYSICAL
BusType		= 15							; PnP bus
CopyFiles	= C7xxUSB_Files_Driver.ntamd64.6.1
AddReg		= C7xxUSB.reg, C7xxUSB.params.reg, C7xxUSBw.params.reg

[C7xxUSBw.ntamd64.6.1.Services]
AddService = C7xxUSB, %FLG_ADDREG_NOCLOBBER%, C7xxUSB_Service.ntamd64.6.1, C7xxUSB.EventLog

; same for all adapters
[C7xxUSB_Service.ntamd64.6.1]
DisplayName    = %C7xxUSB_SvcDesc%
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_DEMAND_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\C7rUSB76.sys
LoadOrderGroup = NDIS

[C7xxUSB_Files_Driver.ntamd64.6.1]
C7rUSB76.sys,,,2

; --------- Registry keys --------------------
[C7xxUSB.reg]
HKR, Ndi, Service, 0, "C7xxUSB"
HKR, NDI\Interfaces, UpperRange, 0, "ndis5"
HKR, NDI\Interfaces, LowerRange, 0, "ethernet"

[C7xxUSB.EventLog]
AddReg = C7xxUSB.AddEventLog.reg

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

;-------------------------------------------------------------------------------
; Optional Custom Parameters in the Registry ("Advanced" menu).
[C7xxUSB.params.reg]
; Statistics interval (debug only)
HKR, NDI\params\StatsInterval,		ParamDesc, 0, %ParamStatInt%
HKR, NDI\params\StatsInterval,		type,      0, "int"
HKR, NDI\params\StatsInterval,		default,   0, "10"
HKR, NDI\params\StatsInterval,		optional,  0, "0"
HKR, NDI\params\StatsInterval,		min,   	   0, "0"
HKR, NDI\params\StatsInterval,		max,   	   0, "60"
; Wakeup timeout after S3/S4 states
HKR, NDI\params\WakeupTimeout,		ParamDesc, 0, %ParamWakeTout%
HKR, NDI\params\WakeupTimeout,		type,      0, "long"
HKR, NDI\params\WakeupTimeout,		default,   0, "100000"
HKR, NDI\params\WakeupTimeout,		optional,  0, "0"
HKR, NDI\params\WakeupTimeout,		min,   	   0, "100000"
HKR, NDI\params\WakeupTimeout,		max,   	   0, "2000000"
; Device remote wake-up
HKR, NDI\params\RWU, 			ParamDesc, 0, %ParamRWU%
HKR, NDI\params\RWU, 			type,      0, "enum"
HKR, NDI\params\RWU, 			default,   0, "1"
HKR, NDI\params\RWU, 			optional,  0, "0"
HKR, NDI\params\RWU\enum, 		"0", 	   0, %ParamDisable%
HKR, NDI\params\RWU\enum, 		"1", 	   0, %ParamEnable%
; No halt on suspend
HKR, NDI\params\NoHalt,			ParamDesc, 0, %ParamNHOS%
HKR, NDI\params\NoHalt,			type,      0, "enum"
HKR, NDI\params\NoHalt,			default,   0, "1"
HKR, NDI\params\NoHalt,			optional,  0, "0"
HKR, NDI\params\NoHalt\enum, 		"0", 	   0, %ParamNo%
HKR, NDI\params\NoHalt\enum, 		"1", 	   0, %ParamYes%
; Suspend timeout
HKR, NDI\params\SuspendTimeout,		ParamDesc, 0, %ParamSuspend%
HKR, NDI\params\SuspendTimeout,		type,      0, "long"
HKR, NDI\params\SuspendTimeout,		default,   0, "10000"
HKR, NDI\params\SuspendTimeout,		optional,  0, "0"
HKR, NDI\params\SuspendTimeout,		min,   	   0, "1000"
HKR, NDI\params\SuspendTimeout,		step,  	   0, "1000"
HKR, NDI\params\SuspendTimeout,		max,   	   0, "30000"
; Suspend timeout in connected state
HKR, NDI\params\SuspendNetTimeout,	ParamDesc, 0, %ParamNetSuspend%
HKR, NDI\params\SuspendNetTimeout,	type,      0, "long"
HKR, NDI\params\SuspendNetTimeout,	default,   0, "900"
HKR, NDI\params\SuspendNetTimeout,	optional,  0, "0"
HKR, NDI\params\SuspendNetTimeout,	min,   	   0, "500"
HKR, NDI\params\SuspendNetTimeout,	step,  	   0, "100"
HKR, NDI\params\SuspendNetTimeout,	max,   	   0, "10000"

; WiBro Adapter Parameters
[C7xxUSBk.params.reg]
; Linkspeed indication
HKR, NDI\params\Linkspeed,		ParamDesc, 0, %ParamSpeed%
HKR, NDI\params\Linkspeed,		type,      0, "long"
HKR, NDI\params\Linkspeed,		default,   0, "1000000"
HKR, NDI\params\Linkspeed,		optional,  0, "0"
HKR, NDI\params\Linkspeed,		min,   	   0, "10000"
HKR, NDI\params\Linkspeed,		step,  	   0, "10000"
HKR, NDI\params\Linkspeed,		max,   	   0, "1000000"
; Maximum send queue depth
HKR, NDI\params\SndQLimit,		ParamDesc, 0, %ParamSQL%
HKR, NDI\params\SndQLimit,		type,      0, "int"
HKR, NDI\params\SndQLimit,		default,   0, "500"
HKR, NDI\params\SndQLimit,		optional,  0, "0"
HKR, NDI\params\SndQLimit,		min,   	   0, "100"
HKR, NDI\params\SndQLimit,		max,   	   0, "1500"
; Maximum receive queue depth
HKR, NDI\params\RcvQLimit,		ParamDesc, 0, %ParamRQL%
HKR, NDI\params\RcvQLimit,		type,      0, "int"
HKR, NDI\params\RcvQLimit,		default,   0, "500"
HKR, NDI\params\RcvQLimit,		optional,  0, "0"
HKR, NDI\params\RcvQLimit,		min,   	   0, "100"
HKR, NDI\params\RcvQLimit,		max,   	   0, "1500"

; mWiMAX Adapter Parameters
[C7xxUSBw.params.reg]
; Linkspeed indication
HKR, NDI\params\Linkspeed,		ParamDesc, 0, %ParamSpeed%
HKR, NDI\params\Linkspeed,		type,      0, "long"
HKR, NDI\params\Linkspeed,		default,   0, "1000000"
HKR, NDI\params\Linkspeed,		optional,  0, "0"
HKR, NDI\params\Linkspeed,		min,   	   0, "10000"
HKR, NDI\params\Linkspeed,		step,  	   0, "10000"
HKR, NDI\params\Linkspeed,		max,   	   0, "1000000"
; Maximum send queue depth
HKR, NDI\params\SndQLimit,		ParamDesc, 0, %ParamSQL%
HKR, NDI\params\SndQLimit,		type,      0, "int"
HKR, NDI\params\SndQLimit,		default,   0, "1750"
HKR, NDI\params\SndQLimit,		optional,  0, "0"
HKR, NDI\params\SndQLimit,		min,   	   0, "100"
HKR, NDI\params\SndQLimit,		max,   	   0, "3000"
; Maximum receive queue depth
HKR, NDI\params\RcvQLimit,		ParamDesc, 0, %ParamRQL%
HKR, NDI\params\RcvQLimit,		type,      0, "int"
HKR, NDI\params\RcvQLimit,		default,   0, "1750"
HKR, NDI\params\RcvQLimit,		optional,  0, "0"
HKR, NDI\params\RcvQLimit,		min,   	   0, "100"
HKR, NDI\params\RcvQLimit,		max,   	   0, "3000"

;--------- Strings Section ---------------------------------------------------
[Strings]
MfgName		 = "Samsung Electronics"
Provider	 = "Samsung Electronics"
C7xxUSB_SvcDesc  = "Samsung CMC7xx USB Network Driver"
WiBro_DeviceDesc = "Samsung USB WiBro Adapter"
WiMAX_DeviceDesc = "Samsung USB mWiMAX Adapter"
DeviceClassName	 = "Class for Network USB devices"
DiskId1		 = "CMC7xx USB Device Installation Disk #1"
; Parameters
ParamManIf	 = "Management Interface"
ParamManIfWDM	 = "WDM"
ParamManIfOID	 = "OID"
ParamStatInt	 = "Statistics Interval"
ParamSpeed	 = "Linkspeed"
ParamSQL	 = "Send Queue Limit"
ParamRQL	 = "Receive Queue Limit"
ParamWakeTout	 = "S3/S4 Wakeup Timeout"
ParamRWU	 = "Remote WakeUp"
ParamNHOS	 = "No Halt On Suspend"
ParamDisable	 = "Disable"
ParamEnable	 = "Enable"
ParamNo		 = "No"
ParamYes	 = "Yes"
ParamSuspend	 = "Suspend Timeout"
ParamNetSuspend	 = "Connected Suspend Timeout"

REG_SZ                      = 0x00000000
REG_MULTI_SZ                = 0x00010000
REG_EXPAND_SZ               = 0x00020000
REG_BINARY                  = 0x00000001
REG_DWORD                   = 0x00010001
REG_NONE                    = 0x00020001

SERVICE_KERNEL_DRIVER       = 0x00000001
SERVICE_FILE_SYSTEM_DRIVER  = 0x00000002
SERVICE_ADAPTER             = 0x00000004
SERVICE_RECOGNIZER_DRIVER   = 0x00000008

SERVICE_BOOT_START          = 0x0
SERVICE_SYSTEM_START        = 0x1
SERVICE_AUTO_START          = 0x2
SERVICE_DEMAND_START        = 0x3
SERVICE_DISABLED            = 0x4

SERVICE_ERROR_IGNORE        = 0x00000000
SERVICE_ERROR_NORMAL        = 0x00000001
SERVICE_ERROR_SEVERE        = 0x00000002
SERVICE_ERROR_CRITICAL      = 0x00000003

FLG_ADDREG_NOCLOBBER        = 0x00000002
FLG_ADDREG_DELVAL           = 0x00000004
FLG_ADDREG_APPEND           = 0x00000008
FLG_ADDREG_KEYONLY          = 0x00000010
FLG_ADDREG_OVERWRITEONLY    = 0x00000020
FLG_ADDREG_64BITKEY         = 0x00001000
FLG_ADDREG_KEYONLY_COMMON   = 0x00002000
FLG_ADDREG_32BITKEY         = 0x00004000
