;*******************************************************************************
;**                                                                           **
;**                            INTEL CONFIDENTIAL                             **
;**                                                                           **
;**        Copyright 2007-2011 Intel Corporation All Rights Reserved.         **
;**                                                                           **
;**  The material contained or described herein and all documents related     **
;**  to such material ("Material") are owned by Intel Corporation or its      **
;**  suppliers or licensors. Title to the Material remains with Intel         **
;**  Corporation or its suppliers and licensors. The Material contains trade  **
;**  secrets and proprietary and confidential information of Intel or its     **
;**  suppliers and licensors. The Material is protected by worldwide          **
;**  copyright and trade secret laws and treaty provisions. No part of the    **
;**  Material may be used, copied, reproduced, modified, published,           **
;**  uploaded, posted, transmitted, distributed, or disclosed in any way      **
;**  without Intel's prior express written permission.                        **
;**                                                                           **
;**  No license under any patent, copyright, trade secret or other            **
;**  intellectual property right is granted to or conferred upon you by       **
;**  disclosure or delivery of the Materials, either expressly, by            **
;**  implication, inducement, estoppel or otherwise. Any license under such   **
;**  intellectual property rights must be express and approved by Intel in    **
;**  writing.                                                                 **
;**                                                                           **
;*******************************************************************************
;
;*******************************************************************************
; INF for Intel(R) Gigabit Virtual Function Network Adapters
;*******************************************************************************
;

[Version]
Signature   = "$Windows NT$"
Class       = Net
ClassGUID   = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider    = %Intel%
CatalogFile = v1q62x64.cat
DriverVer   = 04/04/2011,1.4.0.0

[Manufacturer]
%Intel%     = Intel, NTamd64.6.1

[Intel]

[Intel.NTamd64.6.1]
; DisplayName                       Section     DeviceID
; -----------                       -------     --------
%E1520VF.DeviceDesc%               = E1520,       PCI\VEN_8086&DEV_1520

;-------------------------------------------------------------------------------
; Intel I350 Gigabit Network Connection
;

[E1520]
Characteristics = 0x84 ; NCF_HAS_UI | NCF_PHYSICAL
BusType = 5 ; PCI
DelReg = Cleanup.DelReg
AddReg = Default.reg, Uninstall.reg
CopyFiles = CopyFiles, MessageDll.CopyFiles, Uninstall.CopyFiles
*IfType         = 6     ; IF_TYPE_ETHERNET_CSMACD
*MediaType      = 0     ; NdisMedium802_3
*PhysicalMediaType = 0  ; NdisPhysicalMediumUnspecified

[E1520.Services]
AddService = %ServiceName%, 2, Service, EventLog

[E1520.HW]
Include = machine.inf
Needs = PciIoSpaceNotRequired
AddReg = MSI.reg

[E1520.CoInstallers]
AddReg = CoInstaller_AddReg, CoInK.reg
CopyFiles = CoInstallerCopyFiles

;-------------------------------------------------------------------------------
; Registry Settings
;-------------------------------------------------------------------------------
[Default.reg]
HKR, Ndi\Interfaces,                            UpperRange,             0, "ndis5"
HKR, Ndi\Interfaces,                            LowerRange,             0, "ethernet"
HKR, Ndi,                                       Service,                0, %ServiceName%

; *TransmitBuffers
HKR, Ndi\params\*TransmitBuffers,               ParamDesc,              0, %TransmitBuffers%
HKR, Ndi\params\*TransmitBuffers,               default,                0, "512"
HKR, Ndi\params\*TransmitBuffers,               min,                    0, "128"
HKR, Ndi\params\*TransmitBuffers,               max,                    0, "16384"
HKR, Ndi\params\*TransmitBuffers,               step,                   0, "64"
HKR, Ndi\params\*TransmitBuffers,               Base,                   0, "10"
HKR, Ndi\params\*TransmitBuffers,               type,                   0, "int"

; *ReceiveBuffers
HKR, Ndi\params\*ReceiveBuffers,                ParamDesc,              0, %ReceiveBuffers%
HKR, Ndi\params\*ReceiveBuffers,                default,                0, "512"
HKR, Ndi\params\*ReceiveBuffers,                min,                    0, "128"
HKR, Ndi\params\*ReceiveBuffers,                max,                    0, "4096"
HKR, Ndi\params\*ReceiveBuffers,                step,                   0, "64"
HKR, Ndi\params\*ReceiveBuffers,                Base,                   0, "10"
HKR, Ndi\params\*ReceiveBuffers,                type,                   0, "int"

; Set MinHardwareOwnedPacketCount to 32
HKR,,                                           MinHardwareOwnedPacketCount,   0, "32"

; *TCPChecksumOffloadIPv4
HKR, Ndi\Params\*TCPChecksumOffloadIPv4,        ParamDesc,              0, %TCPChksumOffv4%
HKR, Ndi\Params\*TCPChecksumOffloadIPv4,        default,                0, "3"
HKR, Ndi\Params\*TCPChecksumOffloadIPv4\Enum,   "0",                    0, %Disabled%
HKR, Ndi\Params\*TCPChecksumOffloadIPv4\Enum,   "1",                    0, %ChksumOffTx%
HKR, Ndi\Params\*TCPChecksumOffloadIPv4\Enum,   "2",                    0, %ChksumOffRx%
HKR, Ndi\Params\*TCPChecksumOffloadIPv4\Enum,   "3",                    0, %ChksumOffTxRx%
HKR, Ndi\Params\*TCPChecksumOffloadIPv4,        type,                   0, "enum"

; *TCPChecksumOffloadIPv6
HKR, Ndi\Params\*TCPChecksumOffloadIPv6,        ParamDesc,              0, %TCPChksumOffv6%
HKR, Ndi\Params\*TCPChecksumOffloadIPv6,        default,                0, "3"
HKR, Ndi\Params\*TCPChecksumOffloadIPv6\Enum,   "0",                    0, %Disabled%
HKR, Ndi\Params\*TCPChecksumOffloadIPv6\Enum,   "1",                    0, %ChksumOffTx%
HKR, Ndi\Params\*TCPChecksumOffloadIPv6\Enum,   "2",                    0, %ChksumOffRx%
HKR, Ndi\Params\*TCPChecksumOffloadIPv6\Enum,   "3",                    0, %ChksumOffTxRx%
HKR, Ndi\Params\*TCPChecksumOffloadIPv6,        type,                   0, "enum"

; *UDPChecksumOffloadIPv4
HKR, Ndi\Params\*UDPChecksumOffloadIPv4,        ParamDesc,              0, %UDPChksumOffv4%
HKR, Ndi\Params\*UDPChecksumOffloadIPv4,        default,                0, "3"
HKR, Ndi\Params\*UDPChecksumOffloadIPv4\Enum,   "0",                    0, %Disabled%
HKR, Ndi\Params\*UDPChecksumOffloadIPv4\Enum,   "1",                    0, %ChksumOffTx%
HKR, Ndi\Params\*UDPChecksumOffloadIPv4\Enum,   "2",                    0, %ChksumOffRx%
HKR, Ndi\Params\*UDPChecksumOffloadIPv4\Enum,   "3",                    0, %ChksumOffTxRx%
HKR, Ndi\Params\*UDPChecksumOffloadIPv4,        type,                   0, "enum"

; *UDPChecksumOffloadIPv6
HKR, Ndi\Params\*UDPChecksumOffloadIPv6,        ParamDesc,              0, %UDPChksumOffv6%
HKR, Ndi\Params\*UDPChecksumOffloadIPv6,        default,                0, "3"
HKR, Ndi\Params\*UDPChecksumOffloadIPv6\Enum,   "0",                    0, %Disabled%
HKR, Ndi\Params\*UDPChecksumOffloadIPv6\Enum,   "1",                    0, %ChksumOffTx%
HKR, Ndi\Params\*UDPChecksumOffloadIPv6\Enum,   "2",                    0, %ChksumOffRx%
HKR, Ndi\Params\*UDPChecksumOffloadIPv6\Enum,   "3",                    0, %ChksumOffTxRx%
HKR, Ndi\Params\*UDPChecksumOffloadIPv6,        type,                   0, "enum"

; *IPChecksumOffloadIPv4
HKR, Ndi\Params\*IPChecksumOffloadIPv4,         ParamDesc,              0, %IPChksumOffv4%
HKR, Ndi\Params\*IPChecksumOffloadIPv4,         default,                0, "3"
HKR, Ndi\Params\*IPChecksumOffloadIPv4\Enum,    "0",                    0, %Disabled%
HKR, Ndi\Params\*IPChecksumOffloadIPv4\Enum,    "1",                    0, %ChksumOffTx%
HKR, Ndi\Params\*IPChecksumOffloadIPv4\Enum,    "2",                    0, %ChksumOffRx%
HKR, Ndi\Params\*IPChecksumOffloadIPv4\Enum,    "3",                    0, %ChksumOffTxRx%
HKR, Ndi\Params\*IPChecksumOffloadIPv4,         type,                   0, "enum"

;Log Link State Event
HKR,Ndi\Params\LogLinkStateEvent,               ParamDesc,              0, %LogLinkState%
HKR,Ndi\Params\LogLinkStateEvent,               Type,                   0, "enum"
HKR,Ndi\Params\LogLinkStateEvent,               Default,                0, "51"
HKR,Ndi\Params\LogLinkStateEvent\Enum,          "51",                   0, %Enabled%
HKR,Ndi\Params\LogLinkStateEvent\Enum,          "16",                   0, %Disabled%
HKR,,                                           LogLinkStateEvent,      0, "51"

; Interrupt Throttle Rate
HKR, Ndi\Params\ITR,                            ParamDesc,              0, %InterruptThrottleRate%
HKR, Ndi\Params\ITR,                            default,                0, "65535"
HKR, Ndi\Params\ITR\Enum,                       "65535",                0, %Adaptive%
HKR, Ndi\Params\ITR\Enum,                       "2000",                 0, %Extreme%
HKR, Ndi\Params\ITR\Enum,                       "950",                  0, %High%
HKR, Ndi\Params\ITR\Enum,                       "488",                  0, %Medium%
HKR, Ndi\Params\ITR\Enum,                       "200",                  0, %Low%
HKR, Ndi\Params\ITR\Enum,                       "0",                    0, %Off%
HKR, Ndi\Params\ITR,                            type,                   0, "enum"

; *PriorityVLANTag
HKR, Ndi\Params\*PriorityVLANTag,               ParamDesc,              0, %PriorityVLANTag%
HKR, Ndi\Params\*PriorityVLANTag,               default,                0, "3"
HKR, Ndi\Params\*PriorityVLANTag\Enum,          "0",                    0, %PriorityVlanDisabled%
HKR, Ndi\Params\*PriorityVLANTag\Enum,          "1",                    0, %PriorityEnabled%
HKR, Ndi\Params\*PriorityVLANTag\Enum,          "2",                    0, %VlanEnabled%
HKR, Ndi\Params\*PriorityVLANTag\Enum,          "3",                    0, %PriorityVlanEnabled%
HKR, Ndi\Params\*PriorityVLANTag,               type,                   0, "enum"

; *InterruptModeration
HKR, Ndi\Params\*InterruptModeration,           ParamDesc,              0, %InterruptModeration%
HKR, Ndi\Params\*InterruptModeration,           default,                0, "1"
HKR, Ndi\Params\*InterruptModeration\Enum,      "0",                    0, %Disabled%
HKR, Ndi\Params\*InterruptModeration\Enum,      "1",                    0, %Enabled%
HKR, Ndi\Params\*InterruptModeration,           type,                   0, "enum"

; *LsoV2IPv4
HKR, Ndi\Params\*LsoV2IPv4,                     ParamDesc,              0, %LsoV2IPv4%
HKR, Ndi\Params\*LsoV2IPv4,                     default,                0, "1"
HKR, Ndi\Params\*LsoV2IPv4\Enum,                "0",                    0, %Disabled%
HKR, Ndi\Params\*LsoV2IPv4\Enum,                "1",                    0, %Enabled%
HKR, Ndi\Params\*LsoV2IPv4,                     type,                   0, "enum"

; *LsoV1IPv4
HKR,,                                           *LsoV1IPv4,             0, "0"

; *LsoV2IPv6
HKR, Ndi\Params\*LsoV2IPv6,                     ParamDesc,              0, %LsoV2IPv6%
HKR, Ndi\Params\*LsoV2IPv6,                     default,                0, "1"
HKR, Ndi\Params\*LsoV2IPv6\Enum,                "0",                    0, %Disabled%
HKR, Ndi\Params\*LsoV2IPv6\Enum,                "1",                    0, %Enabled%
HKR, Ndi\Params\*LsoV2IPv6,                     type,                   0, "enum"

; Header Split capabilities
HKR, Ndi\Params\*HeaderDataSplit,               ParamDesc,              0, %HeaderDataSplit%
HKR, Ndi\Params\*HeaderDataSplit,               default,                0, "1"
HKR, Ndi\Params\*HeaderDataSplit\Enum,          "0",                    0, %Disabled%
HKR, Ndi\Params\*HeaderDataSplit\Enum,          "1",                    0, %Enabled%
HKR, Ndi\Params\*HeaderDataSplit,               type,                   0, "enum"
HKR,,                                           HDSplitBufferAssoc,     0, "0"

; *JumboPacket
HKR, Ndi\Params\*JumboPacket,                   ParamDesc,              0, %JumboPacket%
HKR, Ndi\Params\*JumboPacket,                   default,                0, "1514"
HKR, Ndi\Params\*JumboPacket\Enum,              "1514",                 0, %Disabled%
HKR, Ndi\Params\*JumboPacket\Enum,              "4088",                 0, %Bytes4088%
HKR, Ndi\Params\*JumboPacket\Enum,              "9014",                 0, %Bytes9014%
HKR, Ndi\Params\*JumboPacket,                   type,                   0, "enum"

[MSI.reg]
HKR, "Interrupt Management", 0x00000010
HKR, "Interrupt Management\MessageSignaledInterruptProperties", 0x00000010
HKR, "Interrupt Management\MessageSignaledInterruptProperties", MSISupported, 0x00010001, 1
HKR, "Interrupt Management\MessageSignaledInterruptProperties", MessageNumberLimit, 0x00010001, 1

[AddEventLog]
HKR,, EventMessageFile, 0x00020000, %EventLogMessageDllPath%
HKR,, TypesSupported,   0x00010001, 7

[Cleanup.DelReg]
HKR, Ndi\Params\RxScalingMode
HKR,, RxScalingMode
HKR, Ndi\Params\DcaEnabled
HKR,, DcaEnabled
HKR, Ndi\Params\EnableRSC
HKR,, EnableRSC

;-----------------------------------------------------------------------------
; Uninstall parameters
;-----------------------------------------------------------------------------
[Uninstall.reg]
HKLM,Software\Intel\Prounstl\SupportedDevices\8086, 1520, 0, "1520"
HKLM,Software\Intel\Prounstl\Dins, v1q62x64.din, 0, "8259x.Uninstall"
HKLM,Software\Intel\Prounstl\Services, %ServiceName%, 0, v1q62x64.sys

;-----------------------------------------------------------------------------
; Driver "service" installation settings
;-----------------------------------------------------------------------------
[Service]
DisplayName     = %Service.Displayname%
ServiceType     = 1 ;%SERVICE_KERNEL_DRIVER%
StartType       = 3 ;%SERVICE_DEMAND_START%
ErrorControl    = 1 ;%SERVICE_ERROR_NORMAL%
ServiceBinary   = %12%\v1q62x64.sys
LoadOrderGroup  = NDIS

;-----------------------------------------------------------------------------
; Event Log settings
;-----------------------------------------------------------------------------

[EventLog]
AddReg = AddEventLog

;-----------------------------------------------------------------------------
; Coinstaller installation
;-----------------------------------------------------------------------------
[CoInstallerCopyFiles]
NicCo36.dll,,,0x00000010 ;don't overwrite
NicInVQ.dll

[CoInstaller_AddReg]
HKR,, CoInstallers32, 0x00010000,"NicCo36.dll,NicCoInstallerEntry"
HKR,, NicCoPlugins, 0x00010000, "NicInVQ.dll,NicCoInstallerEntry"

[CoInK.reg]
HKR,, CoInstallFlag, 0x00010001, 0x00201400

[CopyFiles]
v1q62x64.sys,,,2

[MessageDll.CopyFiles]
v1qmsg.dll,,,2

[Uninstall.CopyFiles]
v1q62x64.din,,,2

;-----------------------------------------------------------------------------
; DestinationDirs
;-----------------------------------------------------------------------------
[DestinationDirs]
CopyFiles = 12
DefaultDestDir          = 11
Uninstall.CopyFiles = 11
CoInstallerCopyFiles = 11
MessageDll.CopyFiles = 11

[SourceDisksNames]
1 = %DiskName%,,,

;-----------------------------------------------------------------------------
; SourceDisksFiles
;-----------------------------------------------------------------------------
[SourceDisksFiles]
v1q62x64.sys  = 1
v1q62x64.din  = 1
v1qmsg.dll   = 1
NicCo36.dll = 1
NicInVQ.dll  = 1

[Strings]
InterruptThrottleRate           = "Interrupt Moderation Rate"
Adaptive                        = "Adaptive"
Extreme                         = "Extreme"
High                            = "High"
Medium                          = "Medium"
Low                             = "Low"
IPChksumOffv4                   = "IPv4 Checksum Offload"
TCPChksumOffv4                  = "TCP Checksum Offload (IPv4)"
UDPChksumOffv4                  = "UDP Checksum Offload (IPv4)"
LsoV2IPv4                       = "Large Send Offload (IPv4)"
InterruptModeration             = "Interrupt Moderation"
TCPChksumOffv6                  = "TCP Checksum Offload (IPv6)"
UDPChksumOffv6                  = "UDP Checksum Offload (IPv6)"
LsoV2IPv6                       = "Large Send Offload (IPv6)"
HeaderDataSplit                 = "Header Data Split"
ChksumOffTxRx                   = "Rx & Tx Enabled"
ChksumOffTx                     = "Tx Enabled"
ChksumOffRx                     = "Rx Enabled"
TransmitBuffers                 = "Transmit Buffers"
ReceiveBuffers                  = "Receive Buffers"
PriorityVLANTag                 = "Priority & VLAN"
PriorityVlanDisabled            = "Priority & VLAN Disabled"
PriorityEnabled                 = "Priority Enabled"
PriorityVlanEnabled             = "Priority & VLAN Enabled"
VlanEnabled                     = "VLAN Enabled"
Off                             = "Off"
Enabled                         = "Enabled"
Disabled                        = "Disabled"
Bytes4088                       = "4088 Bytes"
Bytes9014                       = "9014 Bytes"
JumboPacket                     = "Jumbo Packet"
LogLinkState                    = "Log Link State Event"
ServiceName                     = "v1q"
Intel                           = "Intel"
EventLogMessageDllPath          = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\v1q62x64.sys"
DiskName                        = "Intel(R) Virtual Network Device Driver Disk"
Service.Displayname             = "Intel(R) Virtual Network Connection"

;-----------------------------------------------------------------------------
; Device Description Strings
;-----------------------------------------------------------------------------
E1520VF.DeviceDesc              = "Intel(R) Virtual Network Connection"
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------

