; Copyright (c) 2006-2020, Microsoft
[Version]
Signature   = "$Windows NT$"
Class       = Net
ClassGUID   = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider    = %MSFT%
DriverVer   = 06/11/2020,1.7.119.0

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

[ControlFlags]
ExcludeFromSelect             = *

[Intel.NTamd64.10.0]
; DisplayName                   Section  DeviceID
; -----------                   -------  --------
%F154C.Generic.Description%   = F154C,   PCI\VEN_8086&DEV_154C
%F1571.Generic.Description%   = F1571,   PCI\VEN_8086&DEV_1571
%F1889.Generic.Description%   = F154C,   PCI\VEN_8086&DEV_1889
%F1889.Generic.Description%   = F1571,   PCI\VEN_8086&DEV_1889&SUBSYS_00018086
%F374D.Generic.Description%   = F37CD,   PCI\VEN_8086&DEV_374D
%F37CDHV.Generic.Description% = F37CDHV, PCI\VEN_8086&DEV_37CD&SUBSYS_00018086
%F37CD.Generic.Description%   = F37CD,   PCI\VEN_8086&DEV_37CD
%F3759.Generic.Description%   = F37CDHV, PCI\VEN_8086&DEV_3759
; ------------------------------------------------------
; Intel(R) 40 Gigabit Controller
; ------------------------------------------------------
[F1571]
Characteristics    = 0x84 ; NCF_HAS_UI | NCF_PHYSICAL
BusType            = 5 ; PCI
AddReg             = VLAN.reg, Default.reg, Rss.reg
AddReg             = Interfaces_iov.reg
CopyFiles          = CopyFiles
*IfType            = 6     ; IF_TYPE_ETHERNET_CSMACD
*MediaType         = 0     ; NdisMedium802_3
*PhysicalMediaType = 0     ; NdisPhysicalMediumUnspecified

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

[F1571.HW]
Include = pci.inf
AddReg  = MSI.reg

[F37CDHV]
Characteristics    = 0x84 ; NCF_HAS_UI | NCF_PHYSICAL
BusType            = 5 ; PCI
AddReg             = VLAN.reg, Default.reg, Rss.reg
AddReg             = Interfaces_iov.reg
CopyFiles          = CopyFiles
*IfType            = 6     ; IF_TYPE_ETHERNET_CSMACD
*MediaType         = 0     ; NdisMedium802_3
*PhysicalMediaType = 0     ; NdisPhysicalMediumUnspecified

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

[F37CDHV.HW]
Include = pci.inf
AddReg  = MSI.reg

; ------------------------------------------------------
; Intel(R) 40 Gigabit Controller, for non Windows hosts
; ------------------------------------------------------
[F154C]
Characteristics    = 0x84 ; NCF_HAS_UI | NCF_PHYSICAL
BusType            = 5 ; PCI
AddReg             = VLAN.reg, Default.reg, Rss.reg
AddReg             = Interfaces.reg
CopyFiles          = CopyFiles
*IfType            = 6     ; IF_TYPE_ETHERNET_CSMACD
*MediaType         = 0     ; NdisMedium802_3
*PhysicalMediaType = 0     ; NdisPhysicalMediumUnspecified

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

[F154C.HW]
Include = pci.inf
AddReg  = MSI.reg

[F37CD]
Characteristics    = 0x84 ; NCF_HAS_UI | NCF_PHYSICAL
BusType            = 5 ; PCI
AddReg             = VLAN.reg, Default.reg, Rss.reg
AddReg             = Interfaces.reg
CopyFiles          = CopyFiles
*IfType            = 6     ; IF_TYPE_ETHERNET_CSMACD
*MediaType         = 0     ; NdisMedium802_3
*PhysicalMediaType = 0     ; NdisPhysicalMediumUnspecified

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

[F37CD.HW]
Include = pci.inf
AddReg  = MSI.reg

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

[Interfaces_iov.reg]
HKR, Ndi\Interfaces,                            UpperRange,             0, "ndisvf"
HKR, Ndi\Interfaces,                            LowerRange,             0, "iovvf"
HKR, Ndi,                                       Service,                0, %ServiceName%

[Default.reg]
; *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, "8160"
HKR, Ndi\params\*TransmitBuffers,               step,                   0, "32"
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, "8160"
HKR, Ndi\params\*ReceiveBuffers,                step,                   0, "32"
HKR, Ndi\params\*ReceiveBuffers,                Base,                   0, "10"
HKR, Ndi\params\*ReceiveBuffers,                type,                   0, "int"

; *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%

; 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,                       "1333",                 0, %Balanced%
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"

; *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"

; *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"

; Network Address
HKR, PROSetNdi\params\NetworkAddress,                 ParamDesc,              0, %LAA%
HKR, PROSetNdi\params\NetworkAddress,                 Default,                0, ""
HKR, PROSetNdi\params\NetworkAddress,                 type,                   0, "edit"
HKR, PROSetNDI\params\NetworkAddress,                 LimitText,              0, "12"
HKR, PROSetNDI\params\NetworkAddress,                 UpperCase,              0, "1"
HKR, PROSetNDI\params\NetworkAddress,                 optional,               0, "1"
HKR, PROSetNDI\params\NetworkAddress,                 ExposeLevel,            0, "3"

; *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"

[RSS.reg]
; NumRssQueues
HKR, Ndi\Params\*NumRssQueues,                   ParamDesc,              0, %NumRssQueues2%
HKR, Ndi\Params\*NumRssQueues,                   default,                0, "2"
HKR, Ndi\Params\*NumRssQueues,                   type,                   0, "enum"
HKR, Ndi\Params\*NumRssQueues\Enum,              "1",                    0, %1queue%
HKR, Ndi\Params\*NumRssQueues\Enum,              "2",                    0, %2queues%
HKR, Ndi\Params\*NumRssQueues\Enum,              "4",                    0, %4queues%

; *RssMaxProcNumber
HKR, Ndi\params\*RssMaxProcNumber,             ParamDesc,              0, %RssMaxProcNumber%
HKR, Ndi\params\*RssMaxProcNumber,             default,                0, "16"
HKR, Ndi\params\*RssMaxProcNumber,             min,                    0, "0"
HKR, Ndi\params\*RssMaxProcNumber,             max,                    0, "16"
HKR, Ndi\params\*RssMaxProcNumber,             step,                   0, "1"
HKR, Ndi\params\*RssMaxProcNumber,             Optional,               0, "0"
HKR, Ndi\params\*RssMaxProcNumber,             type,                   0, "int"

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

; *RssBaseProcNumber
HKR, Ndi\params\*RssBaseProcNumber,             ParamDesc,              0, %RssBaseProcNumber%
HKR, Ndi\params\*RssBaseProcNumber,             default,                0, "0"
HKR, Ndi\params\*RssBaseProcNumber,             min,                    0, "0"
HKR, Ndi\params\*RssBaseProcNumber,             max,                    0, "63"
HKR, Ndi\params\*RssBaseProcNumber,             step,                   0, "1"
HKR, Ndi\params\*RssBaseProcNumber,             Optional,               0, "0"
HKR, Ndi\params\*RssBaseProcNumber,             type,                   0, "int"

; *MaxRssProcessors
HKR, Ndi\params\*MaxRssProcessors,              ParamDesc,              0, %MaxRssProcessors%
HKR, Ndi\params\*MaxRssProcessors,              default,                0, "16"
HKR, Ndi\params\*MaxRssProcessors,              type,                   0, "enum"
HKR, Ndi\params\*MaxRssProcessors\Enum,         "1",                    0, "1"
HKR, Ndi\params\*MaxRssProcessors\Enum,         "2",                    0, "2"
HKR, Ndi\params\*MaxRssProcessors\Enum,         "4",                    0, "4"
HKR, Ndi\params\*MaxRssProcessors\Enum,         "8",                    0, "8"
HKR, Ndi\params\*MaxRssProcessors\Enum,         "16",                   0, "16"

[VLAN.reg]
; *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"

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

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

;-----------------------------------------------------------------------------
; 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%\iavf68.sys
LoadOrderGroup = NDIS

;-----------------------------------------------------------------------------
; Event Log settings
;-----------------------------------------------------------------------------
[EventLog]
AddReg = AddEventLog

[CopyFiles]
iavf68.sys,,,2

;-----------------------------------------------------------------------------
; DestinationDirs
;-----------------------------------------------------------------------------
[DestinationDirs]
CopyFiles = 12

[SourceDisksNames]
1 = %DiskName%,,,

;-----------------------------------------------------------------------------
; SourceDisksFiles
;-----------------------------------------------------------------------------
[SourceDisksFiles]
iavf68.sys = 1

[Strings]
InterruptThrottleRate         = "Interrupt Moderation Rate"
Adaptive                      = "Adaptive"
Extreme                       = "Extreme"
Balanced                      = "Balanced"
High                          = "High"
Medium                        = "Medium"
Low                           = "Low"
IPChksumOffv4                 = "IPv4 Checksum Offload"
TCPChksumOffv4                = "TCP Checksum Offload (IPv4)"
UDPChksumOffv4                = "UDP Checksum Offload (IPv4)"
LsoV2IPv4                     = "Large Send Offload V2 (IPv4)"
InterruptModeration           = "Interrupt Moderation"
TCPChksumOffv6                = "TCP Checksum Offload (IPv6)"
UDPChksumOffv6                = "UDP Checksum Offload (IPv6)"
LsoV2IPv6                     = "Large Send Offload V2 (IPv6)"
ChksumOffTxRx                 = "Rx & Tx Enabled"
ChksumOffTx                   = "Tx Enabled"
ChksumOffRx                   = "Rx Enabled"
TransmitBuffers               = "Transmit Buffers"
ReceiveBuffers                = "Receive Buffers"
RSS                           = "Receive Side Scaling"
RssMaxProcNumber              = "Maximum RSS Processor Number"
NumRssQueues2                 = "Maximum Number of RSS Queues"
RssBaseProcNumber             = "RSS Base Processor Number"
MaxRssProcessors              = "Maximum Number of RSS Processors"
1queue                        = "1 Queue"
2queues                       = "2 Queues"
4queues                       = "4 Queues"
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"
LAA                           = "Locally Administered Address"
JumboPacket                   = "Jumbo Packet"
LogLinkState                  = "Log Link State Event"
ServiceName                   = "iavf68"
Intel                         = "Intel"
MSFT                          = "Microsoft"
EventLogMessageDllPath        = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\iavfmsg.dll"
DiskName                      = "Intel(R) Adaptive Virtual Network Device Driver Disk"
Service.Displayname           = "Intel(R) Adaptive Virtual Network Connection"


;-----------------------------------------------------------------------------
; Device Description Strings
;-----------------------------------------------------------------------------

F154C.Generic.Description     = "Intel(R) Ethernet Virtual Function 700 Series"
F1571.Generic.Description     = "Intel(R) Ethernet Virtual Function 700 Series"
F1889.Generic.Description     = "Intel(R) Ethernet Adaptive Virtual Function"
F374D.Generic.Description     = "Intel(R) X722 Virtual Function"
F37CDHV.Generic.Description   = "Intel(R) Ethernet Virtual Function 700 Series"
F37CD.Generic.Description     = "Intel(R) Ethernet Virtual Function 700 Series"
F3759.Generic.Description     = "Intel(R) X722 Virtual Function"

;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------


