;++
;
;Copyright (c) Microsoft Corporation. All Rights Reserved.
;
;Module Name:
;
;   NdisImPlatformMp.inf
;
;Abstract:
;
;   The IM Platform driver INF file (miniport edge).
;
;--

[Version]
Signature   = "$Windows NT$"
Class       = Net
ClassGUID   = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider    = %Msft%
PnpLockdown = 1
DriverVer = 06/21/2006,10.0.22621.1

[ControlFlags]
ExcludeFromSelect = COMPOSITEBUS\MS_IMPLAT_MP

[Manufacturer]
%Msft% = MSFT,NTamd64

[MSFT.NTamd64]
%IMPLAT_Desc% = NdisImPlatformMp.ndi, COMPOSITEBUS\MS_IMPLAT_MP

[NdisImPlatformMp.ndi]
AddReg             = NdisImPlatformMp.ndi.AddReg
Characteristics    = 0x21          ; NCF_NOT_USER_REMOVABLE | NCF_VIRTUAL
*IfType            = 6             ; IF_TYPE_ETHERNET_CSMACD 
*MediaType         = 0             ; NdisMedium802_3 
*PhysicalMediaType = 14            ; NdisPhysicalMedium802_3

[NdisImPlatformMp.ndi.AddReg]
HKR, Ndi, Service,  0,  NdisImPlatformMp
HKR, Ndi, HelpText, 0,  "@%%SystemRoot%%\System32\drivers\ndisimplatform.sys,-530"
HKR, Ndi\Interfaces,    UpperRange, 0,  "ndis5"
HKR, Ndi\Interfaces,    LowerRange, 0,  "ethernet, ms_implatform"

; Network address
HKR, Ndi\params\NetworkAddress,                         ParamDesc, 0, "%NetworkAddress%"
HKR, Ndi\params\NetworkAddress,                         default,   0, ""
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,                         optional,  0, "1"

; IPv4 IP Checksum offload
HKR, Ndi\Params\*IPChecksumOffloadIPv4,                 ParamDesc,  0, %Ip4IpChecksum%
HKR, Ndi\Params\*IPChecksumOffloadIPv4,                 type,       0, "enum"
HKR, Ndi\Params\*IPChecksumOffloadIPv4,                 default,    0, "3"
HKR, Ndi\Params\*IPChecksumOffloadIPv4\Enum,            "0",        0, %CmnDisabled%
HKR, Ndi\Params\*IPChecksumOffloadIPv4\Enum,            "1",        0, %OflEnabledTx%
HKR, Ndi\Params\*IPChecksumOffloadIPv4\Enum,            "2",        0, %OflEnabledRx%
HKR, Ndi\Params\*IPChecksumOffloadIPv4\Enum,            "3",        0, %OflEnabledTxRx%

; IPv4 TCP Checksum offload
HKR, Ndi\Params\*TCPChecksumOffloadIPv4,                ParamDesc,  0, %Ip4TcpChecksum%
HKR, Ndi\Params\*TCPChecksumOffloadIPv4,                type,       0, "enum"
HKR, Ndi\Params\*TCPChecksumOffloadIPv4,                default,    0, "3"
HKR, Ndi\Params\*TCPChecksumOffloadIPv4\Enum,           "0",        0, %CmnDisabled%
HKR, Ndi\Params\*TCPChecksumOffloadIPv4\Enum,           "1",        0, %OflEnabledTx%
HKR, Ndi\Params\*TCPChecksumOffloadIPv4\Enum,           "2",        0, %OflEnabledRx%
HKR, Ndi\Params\*TCPChecksumOffloadIPv4\Enum,           "3",        0, %OflEnabledTxRx%

; IPv6 TCP Checksum offload
HKR, Ndi\Params\*TCPChecksumOffloadIPv6,                ParamDesc,  0, %Ip6TcpChecksum%
HKR, Ndi\Params\*TCPChecksumOffloadIPv6,                type,       0, "enum"
HKR, Ndi\Params\*TCPChecksumOffloadIPv6,                default,    0, "3"
HKR, Ndi\Params\*TCPChecksumOffloadIPv6\Enum,           "0",        0, %CmnDisabled%
HKR, Ndi\Params\*TCPChecksumOffloadIPv6\Enum,           "1",        0, %OflEnabledTx%
HKR, Ndi\Params\*TCPChecksumOffloadIPv6\Enum,           "2",        0, %OflEnabledRx%
HKR, Ndi\Params\*TCPChecksumOffloadIPv6\Enum,           "3",        0, %OflEnabledTxRx%

; IPv4 UDP Checksum offload
HKR, Ndi\Params\*UDPChecksumOffloadIPv4,                ParamDesc,  0, %Ip4UdpChecksum%
HKR, Ndi\Params\*UDPChecksumOffloadIPv4,                type,       0, "enum"
HKR, Ndi\Params\*UDPChecksumOffloadIPv4,                default,    0, "3"
HKR, Ndi\Params\*UDPChecksumOffloadIPv4\Enum,           "0",        0, %CmnDisabled%
HKR, Ndi\Params\*UDPChecksumOffloadIPv4\Enum,           "1",        0, %OflEnabledTx%
HKR, Ndi\Params\*UDPChecksumOffloadIPv4\Enum,           "2",        0, %OflEnabledRx%
HKR, Ndi\Params\*UDPChecksumOffloadIPv4\Enum,           "3",        0, %OflEnabledTxRx%

; IPv6 UDP Checksum offload
HKR, Ndi\Params\*UDPChecksumOffloadIPv6,                ParamDesc,  0, %Ip6UdpChecksum%
HKR, Ndi\Params\*UDPChecksumOffloadIPv6,                type,       0, "enum"
HKR, Ndi\Params\*UDPChecksumOffloadIPv6,                default,    0, "3"
HKR, Ndi\Params\*UDPChecksumOffloadIPv6\Enum,           "0",        0, %CmnDisabled%
HKR, Ndi\Params\*UDPChecksumOffloadIPv6\Enum,           "1",        0, %OflEnabledTx%
HKR, Ndi\Params\*UDPChecksumOffloadIPv6\Enum,           "2",        0, %OflEnabledRx%
HKR, Ndi\Params\*UDPChecksumOffloadIPv6\Enum,           "3",        0, %OflEnabledTxRx%

; IPv4 TCP Segmentation offload
HKR, Ndi\Params\*LsoV2IPv4,                             ParamDesc,  0, %Ip4TcpLsoV2%
HKR, Ndi\Params\*LsoV2IPv4,                             type,       0, "enum"
HKR, Ndi\Params\*LsoV2IPv4,                             default,    0, "1"
HKR, Ndi\Params\*LsoV2IPv4\Enum,                        "0",        0, %CmnDisabled%
HKR, Ndi\Params\*LsoV2IPv4\Enum,                        "1",        0, %CmnEnabled%

; IPv6 TCP Segmentation offload
HKR, Ndi\Params\*LsoV2IPv6,                             ParamDesc,  0, %Ip6TcpLsoV2%
HKR, Ndi\Params\*LsoV2IPv6,                             type,       0, "enum"
HKR, Ndi\Params\*LsoV2IPv6,                             default,    0, "1"
HKR, Ndi\Params\*LsoV2IPv6\Enum,                        "0",        0, %CmnDisabled%
HKR, Ndi\Params\*LsoV2IPv6\Enum,                        "1",        0, %CmnEnabled%

; IPSec capabilities (both IPv4 & IPv6)
HKR, Ndi\Params\*IPsecOffloadV2,                        ParamDesc,  0, %IPsecOffloadV2%
HKR, Ndi\Params\*IPsecOffloadV2,                        type,       0, "enum"
HKR, Ndi\Params\*IPsecOffloadV2,                        default,    0, "3"
HKR, Ndi\Params\*IPsecOffloadV2\Enum,                   "0",        0, %CmnDisabled%
HKR, Ndi\Params\*IPsecOffloadV2\Enum,                   "1",        0, %IPsecAH%
HKR, Ndi\Params\*IPsecOffloadV2\Enum,                   "2",        0, %IPsecESP%
HKR, Ndi\Params\*IPsecOffloadV2\Enum,                   "3",        0, %IPsecAHESP%

; Header Data Split
HKR, Ndi\Params\*HeaderDataSplit,                       ParamDesc,  0, %HeaderDataSplit%
HKR, Ndi\Params\*HeaderDataSplit,                       type,       0, "enum"
HKR, Ndi\Params\*HeaderDataSplit,                       default,    0, "1"
HKR, Ndi\Params\*HeaderDataSplit\Enum,                  "0",        0, %CmnDisabled%
HKR, Ndi\Params\*HeaderDataSplit\Enum,                  "1",        0, %CmnEnabled%

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

; VMQ
HKR, Ndi\Params\*VMQ,                                   ParamDesc,  0, %VMQ%
HKR, Ndi\Params\*VMQ,                                   type,       0, "enum"
HKR, Ndi\Params\*VMQ,                                   default,    0, "1"
HKR, Ndi\Params\*VMQ\Enum,                              "0",        0, %CmnDisabled%
HKR, Ndi\Params\*VMQ\Enum,                              "1",        0, %CmnEnabled%

; VMQ Lookahead Split
HKR, Ndi\Params\*VMQLookaheadSplit,                     ParamDesc,  0, %VMQLookaheadSplit%
HKR, Ndi\Params\*VMQLookaheadSplit,                     type,       0, "enum"
HKR, Ndi\Params\*VMQLookaheadSplit,                     default,    0, "1"
HKR, Ndi\Params\*VMQLookaheadSplit\Enum,                "0",        0, %CmnDisabled%
HKR, Ndi\Params\*VMQLookaheadSplit\Enum,                "1",        0, %CmnEnabled%

; VMQ VLAN Filtering
HKR, Ndi\Params\*VMQVlanFiltering,                      ParamDesc,  0, %VMQVlanFiltering%
HKR, Ndi\Params\*VMQVlanFiltering,                      type,       0, "enum"
HKR, Ndi\Params\*VMQVlanFiltering,                      default,    0, "1"
HKR, Ndi\Params\*VMQVlanFiltering\Enum,                 "0",        0, %CmnDisabled%
HKR, Ndi\Params\*VMQVlanFiltering\Enum,                 "1",        0, %CmnEnabled%

; ReceiveSegmentCoalescing, IPv4
HKR, Ndi\Params\*RscIPv4,                               ParamDesc,  0, %RscIpV4%
HKR, Ndi\Params\*RscIPv4,                               type,       0, "enum"
HKR, Ndi\Params\*RscIPv4,                               default,    0, "1"
HKR, Ndi\Params\*RscIPv4\Enum,                          "0",        0, %CmnDisabled%
HKR, Ndi\Params\*RscIPv4\Enum,                          "1",        0, %CmnEnabled%

; ReceiveSegmentCoalescing, IPv6
HKR, Ndi\Params\*RscIPv6,                               ParamDesc,  0, %RscIpV6%
HKR, Ndi\Params\*RscIPv6,                               type,       0, "enum"
HKR, Ndi\Params\*RscIPv6,                               default,    0, "1"
HKR, Ndi\Params\*RscIPv6\Enum,                          "0",        0, %CmnDisabled%
HKR, Ndi\Params\*RscIPv6\Enum,                          "1",        0, %CmnEnabled%

; NVGRE Offload
HKR, Ndi\Params\*EncapsulatedPacketTaskOffload,         ParamDesc,  0, %NVGRE%
HKR, Ndi\Params\*EncapsulatedPacketTaskOffload,         type,       0, "enum"
HKR, Ndi\Params\*EncapsulatedPacketTaskOffload,         default,    0, "1"
HKR, Ndi\Params\*EncapsulatedPacketTaskOffload\Enum,    "0",        0, %CmnDisabled%
HKR, Ndi\Params\*EncapsulatedPacketTaskOffload\Enum,    "1",        0, %CmnEnabled%

[NdisImPlatformMp.ndi.Services]
AddService = NdisImPlatformMp, 2, NdisImPlatformMp.AddService

[NdisImPlatformMp.AddService]
DisplayName     = "@%%SystemRoot%%\System32\drivers\ndisimplatform.sys,-531"
ServiceType     = 1                       ; SERVICE_KERNEL_DRIVER
StartType       = 3                       ; SERVICE_DEMAND_START
ErrorControl    = 1                       ; SERVICE_ERROR_NORMAL
ServiceBinary   = %12%\NdisImPlatform.sys
Description     = "@%%SystemRoot%%\System32\drivers\ndisimplatform.sys,-531"
StartName       = \Driver\NdisImPlatform

[Strings]
;
; Non-Localizable
;
Msft = "Microsoft"
IMPLAT_Desc = "Microsoft Network Adapter Multiplexor Driver"

;
; Localizable
;
NetworkAddress      = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-536"
                    
Ip4IpChecksum       = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-537"
Ip4TcpChecksum      = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-538"
Ip6TcpChecksum      = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-539"
Ip4UdpChecksum      = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-540"
Ip6UdpChecksum      = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-541"
Ip4TcpLsoV2         = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-542"
Ip6TcpLsoV2         = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-543"
                    
CmnDisabled         = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-544"
CmnEnabled          = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-545"
OflEnabledTx        = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-546"
OflEnabledRx        = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-547"
OflEnabledTxRx      = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-548"
                    
IPsecOffloadV2      = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-549"
IPsecAH             = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-550"
IPsecESP            = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-551"
IPSecAHESP          = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-552"
                    
HeaderDataSplit     = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-553"
                    
RSS                 = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-554"
VMQ                 = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-555"
VMQLookaheadSplit   = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-556"
VMQVlanFiltering    = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-557"

RscIpV4             = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-558"
RscIpV6             = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-559"

NVGRE               = "@%SystemRoot%\System32\drivers\ndisimplatform.sys,-560"
