; Copyright (c) Microsoft Corporation.  All rights reserved.

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

[SourceDisksNames]
3426=windows cd

[SourceDisksFiles]
dc21x4vm.sys 		= 3426

[Manufacturer]
%Intel%     = Intel,NTx86,NTamd64

[ControlFlags]
ExcludeFromSelect = *

[Intel.NTx86]
%21140.DeviceDesc%      = 21140.ndi,    PCI\VEN_1011&DEV_0009&SUBSYS_21140A00&REV_20     ;Intel 21140-Based PCI Fast Ethernet Adapter (Emulated)
%21140.DeviceDesc%      = 21140.ndi,    PCI\VEN_1011&DEV_0009&SUBSYS_21140A01&REV_20     ;Intel 21140-Based PCI Fast Ethernet Adapter (Emulated)
%21140.DeviceDesc%      = 21140.ndi,    PCI\VEN_1011&DEV_0009&SUBSYS_21140A02&REV_20     ;Intel 21140-Based PCI Fast Ethernet Adapter (Emulated)
%21140.DeviceDesc%      = 21140.ndi,    PCI\VEN_1011&DEV_0009&SUBSYS_21140A03&REV_20     ;Intel 21140-Based PCI Fast Ethernet Adapter (Emulated)

[Intel.NTamd64]
%21140.DeviceDesc%      = 21140.ndi,    PCI\VEN_1011&DEV_0009&SUBSYS_21140A00&REV_20     ;Intel 21140-Based PCI Fast Ethernet Adapter (Emulated)
%21140.DeviceDesc%      = 21140.ndi,    PCI\VEN_1011&DEV_0009&SUBSYS_21140A01&REV_20     ;Intel 21140-Based PCI Fast Ethernet Adapter (Emulated)
%21140.DeviceDesc%      = 21140.ndi,    PCI\VEN_1011&DEV_0009&SUBSYS_21140A02&REV_20     ;Intel 21140-Based PCI Fast Ethernet Adapter (Emulated)
%21140.DeviceDesc%      = 21140.ndi,    PCI\VEN_1011&DEV_0009&SUBSYS_21140A03&REV_20     ;Intel 21140-Based PCI Fast Ethernet Adapter (Emulated)

;-------------------------------------------------------------------------------
; Intel  21140
;
[21140.ndi]
Characteristics = 0x84
BusType         = 5
AddReg          = 21140.reg, 2114x.reg, 21x4vm.reg, 21x4.pci.reg, 21140.con.reg, 2114x.Params
CopyFiles       = dc21x4vm.Copyfiles
*IfType         = 6 ; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0 ; NdisMedium802_3
*PhysicalMediaType = 14 ; NdisPhysicalMedium802_3

[21140.ndi.Services]
AddService      = dc21x4vm, 2, dc21x4vm.Service, dc21x4vm.EventLog

;-----------------------------------------------------------------------------
; 21140 specific
;
[21140.reg]
HKR, ,                                      AdapterCFID,    0, "00091011"
HKR, Ndi\params\InterruptMitigation,        ParamDesc,      0, %InterruptMitigation%
HKR, Ndi\params\InterruptMitigation,        default,        0, "0"
HKR, Ndi\params\InterruptMitigation,        type,           0, "enum"
HKR, Ndi\params\InterruptMitigation\enum,   "0",            0, %Disabled%
HKR, Ndi\params\InterruptMitigation\enum,   "1",            0, %Enabled%

;-----------------------------------------------------------------------------
; 21x4 common driver parameters
;
[21x4vm.reg]
HKR, Ndi,                                   Service,        0, "dc21x4VM"
HKR, Ndi\Interfaces,                        LowerRange,     0, "ethernet"
HKR, Ndi\Interfaces,                        UpperRange,     0, "ndis5"
HKR, ,                                      MediaType,      0, "1"

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

; Process Transmit First
HKR,Ndi\params\ProcessTransmitFirst,        ParamDesc,      0, %ProcessTransmitFirst%
HKR,Ndi\params\ProcessTransmitFirst,        default,        0, "0"
HKR,Ndi\params\ProcessTransmitFirst,        type,           0, "enum"
HKR,Ndi\params\ProcessTransmitFirst\enum,   "0",            0, %Disabled%
HKR,Ndi\params\ProcessTransmitFirst\enum,   "1",            0, %Enabled%

;-----------------------------------------------------------------------------
; PCI common parameters
;
[21x4.pci.reg]
HKR, Ndi\params\UnderrunRetry,              ParamDesc,      0, %UnderrunRetry%
HKR, Ndi\params\UnderrunRetry,              default,        0, "2"
HKR, Ndi\params\UnderrunRetry,              type,           0, "enum"
HKR, Ndi\params\UnderrunRetry\enum,         "2",            0, " 2"
HKR, Ndi\params\UnderrunRetry\enum,         "4",            0, " 4"
HKR, Ndi\params\UnderrunRetry\enum,         "6",            0, " 6"
HKR, Ndi\params\UnderrunRetry\enum,         "8",            0, " 8"

HKR, Ndi\params\ExtraReceiveBuffers,        ParamDesc,      0, %ExtraReceiveBuffers%
HKR, Ndi\params\ExtraReceiveBuffers,        default,        0, "800"
HKR, Ndi\params\ExtraReceiveBuffers,        type,           0, "enum"
HKR, Ndi\params\ExtraReceiveBuffers\enum,   "0",            0, "  0"
HKR, Ndi\params\ExtraReceiveBuffers\enum,   "100",           0, "256"
HKR, Ndi\params\ExtraReceiveBuffers\enum,   "200",           0, "512"
HKR, Ndi\params\ExtraReceiveBuffers\enum,   "400",           0, "1024"
HKR, Ndi\params\ExtraReceiveBuffers\enum,   "800",           0, "2048"

HKR, Ndi\params\ExtraReceivePackets,        ParamDesc,      0, %ExtraReceivePackets%
HKR, Ndi\params\ExtraReceivePackets,        default,        0, "64"
HKR, Ndi\params\ExtraReceivePackets,        type,           0, "enum"
HKR, Ndi\params\ExtraReceivePackets\enum,   "10",           0, "16"
HKR, Ndi\params\ExtraReceivePackets\enum,   "20",           0, "32"
HKR, Ndi\params\ExtraReceivePackets\enum,   "40",           0, "64"
HKR, Ndi\params\ExtraReceivePackets\enum,   "64",           0, "100"
HKR, Ndi\params\ExtraReceivePackets\enum,   "128",          0, "200"

;-----------------------------------------------------------------------------
; 2114x common parameters
;
[2114x.Params]
HKR, Ndi\params\BurstLength,                ParamDesc,      0, %BurstLength%
HKR, Ndi\params\BurstLength,                default,        0, "10"
HKR, Ndi\params\BurstLength,                type,           0, "enum"
HKR, Ndi\params\BurstLength\enum,           "1",            0, "1 DWORD"
HKR, Ndi\params\BurstLength\enum,           "2",            0, "2 DWORDS"
HKR, Ndi\params\BurstLength\enum,           "4",            0, "4 DWORDS"
HKR, Ndi\params\BurstLength\enum,           "8",            0, "8 DWORDS"
HKR, Ndi\params\BurstLength\enum,           "10",           0, "16 DWORDS"
HKR, Ndi\params\BurstLength\enum,           "20",           0, "32 DWORDS"

HKR, ,                                      AdapterType,    0, "5"
HKR, Ndi\params\ReceiveBuffers,             ParamDesc,      0, %ReceiveBuffers%
HKR, Ndi\params\ReceiveBuffers,             default,        0, "30"
HKR, Ndi\params\ReceiveBuffers,             type,           0, "enum"
HKR, Ndi\params\ReceiveBuffers\enum,        "8",            0, " 8"
HKR, Ndi\params\ReceiveBuffers\enum,        "10",           0, "16"
HKR, Ndi\params\ReceiveBuffers\enum,        "20",           0, "32"
HKR, Ndi\params\ReceiveBuffers\enum,        "30",           0, "48"
HKR, Ndi\params\ReceiveBuffers\enum,        "40",           0, "64"

[2114x.reg]
HKR, Ndi\params\TransmitThreshold100,       ParamDesc,      0, %TransmitThreshold100%
HKR, Ndi\params\TransmitThreshold100,       default,        0, "200"
HKR, Ndi\params\TransmitThreshold100,       type,           0, "enum"
HKR, Ndi\params\TransmitThreshold100\enum,  "80",           0, " 128 bytes"
HKR, Ndi\params\TransmitThreshold100\enum,  "100",          0, " 256 bytes"
HKR, Ndi\params\TransmitThreshold100\enum,  "200",          0, " 512 bytes"
HKR, Ndi\params\TransmitThreshold100\enum,  "400",          0, "1024 bytes"

HKR, Ndi\params\TransmitThreshold,          ParamDesc,      0, %TransmitThreshold%
HKR, Ndi\params\TransmitThreshold,          default,        0, "60"
HKR, Ndi\params\TransmitThreshold,          type,           0, "enum"
HKR, Ndi\params\TransmitThreshold\enum,     "48",           0, "  72 bytes"
HKR, Ndi\params\TransmitThreshold\enum,     "60",           0, "  96 bytes"
HKR, Ndi\params\TransmitThreshold\enum,     "80",           0, " 128 bytes"
HKR, Ndi\params\TransmitThreshold\enum,     "A0",           0, " 160 bytes"

HKR, Ndi\params\UnderrunThreshold,          ParamDesc,      0, %UnderrunThreshold%
HKR, Ndi\params\UnderrunThreshold,          default,        0, "0A"
HKR, Ndi\params\UnderrunThreshold,          type,           0, "enum"
HKR, Ndi\params\UnderrunThreshold\enum,     "0A",           0, " 10"
HKR, Ndi\params\UnderrunThreshold\enum,     "14",           0, " 20"
HKR, Ndi\params\UnderrunThreshold\enum,     "32",           0, " 50"
HKR, Ndi\params\UnderrunThreshold\enum,     "64",           0, "100"

HKR, Ndi\params\StoreAndForward,            ParamDesc,      0, %StoreAndForward%
HKR, Ndi\params\StoreAndForward,            default,        0, "0"
HKR, Ndi\params\StoreAndForward,            type,           0, "enum"
HKR, Ndi\params\StoreAndForward\enum,       "0",            0, %Disabled%
HKR, Ndi\params\StoreAndForward\enum,       "1",            0, %Enabled%

HKR, Ndi\params\MemoryReadMultiple,         ParamDesc,      0, %MemoryReadMultiple%
HKR, Ndi\params\MemoryReadMultiple,         default,        0, "0"
HKR, Ndi\params\MemoryReadMultiple,         type,           0, "enum"
HKR, Ndi\params\MemoryReadMultiple\enum,    "0",            0, %Disabled%
HKR, Ndi\params\MemoryReadMultiple\enum,    "1",            0, %Enabled%

;-----------------------------------------------------------------------------
; 21140 common conection type parameter
;
[21140.con.reg]
HKR, Ndi\params\ConnectionType,             ParamDesc,      0, %ConnectionType%
HKR, Ndi\params\ConnectionType,             default,        0, "0"
HKR, Ndi\params\ConnectionType,             type,           0, "enum"
HKR, Ndi\params\ConnectionType\enum,        "0",            0, %AutoSense%
HKR, Ndi\params\ConnectionType\enum,        "8",            0, %100BaseTx%
HKR, Ndi\params\ConnectionType\enum,        "9",            0, %100BaseTxFull_Duplex%
HKR, Ndi\params\ConnectionType\enum,        "0A",           0, %100BaseT4%
HKR, Ndi\params\ConnectionType\enum,        "0B",           0, %100BaseFx%
HKR, Ndi\params\ConnectionType\enum,        "0C",           0, %100BaseFxFull_Duplex%
HKR, Ndi\params\ConnectionType\enum,        "2",            0, %10BaseT%
HKR, Ndi\params\ConnectionType\enum,        "3",            0, %10BaseTFull_Duplex%

;-----------------------------------------------------------------------------
; Common dc21x4vm-Based Service and Driver
;
[dc21x4vm.Service]
;DisplayName     = %dc21x4vm.Service.DispName%
ServiceType     = 1 ;%SERVICE_KERNEL_DRIVER%
StartType       = 3 ;%SERVICE_DEMAND_START%
ErrorControl    = 1 ;%SERVICE_ERROR_NORMAL%
ServiceBinary   = %12%\dc21x4vm.sys
LoadOrderGroup  = NDIS

[dc21x4vm.Copyfiles]
dc21x4vm.sys,,,2

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

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

;-----------------------------------------------------------------------------
; DestinationDirs
;
[DestinationDirs]
dc21x4vm.Copyfiles = 12

;-------------------------------------------------------------------------------
; Localizable Strings
;
[Strings]
Msft                    = "Microsoft"
Intel                   = "Intel"

SnoozeMode              = "Snooze Mode"
Disabled                = "Disabled"
Enabled                 = "Enabled"
InterruptMitigation     = "Interrupt Mitigation"
ReceiveBuffers          = "Receive Buffers"
ProcessTransmitFirst    = "Process Transmit First"
UnderrunRetry           = "Underrun Max Retries"
ExtraReceiveBuffers     = "Extra Receive Buffers"
ExtraReceivePackets     = "Extra Receive Packets"
BurstLength             = "Burst Length"
TransmitThreshold       = "Transmit Threshold"
TransmitThreshold100    = "Transmit Threshold 100Mbps"
UnderrunThreshold       = "Underrun Threshold"
StoreAndForward         = "Store And Forward"
MemoryReadMultiple      = "Memory Read Multiple"
ConnectionType          = "Connection Type"
AutoDetect              = "Auto Detect"
10BaseT                 = "10BaseT (Twisted Pair)"
10BaseTFull_Duplex      = "10BaseT Full Duplex"
10Base2(BNC)            = "10Base2 (BNC)"
10Base5(AUI)            = "10Base5 (AUI)"
AutoSense               = "AutoSense"
100BaseTx               = "100BaseTx"
100BaseTxFull_Duplex    = "100BaseTx Full Duplex"
100BaseT4               = "100BaseT4"
100BaseFx               = "100BaseFx"
100BaseFxFull_Duplex    = "100BaseFx Full Duplex"
NetworkAddress          = "Network Address"

21140.DeviceDesc        = "Intel 21140-Based PCI Fast Ethernet Adapter (Emulated)"

dc21x4vm.Service.DispName = "dc21x4VM Based Network Adapter Driver"
