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

[Version]
Signature = "$WINDOWS NT$"
Class = Net
ClassGuid = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Microsoft%
PnpLockdown = 1
DriverVer = 10/18/2023,10.0.22621.2506

[DestinationDirs]
DefaultDestDir = 13

[SourceDisksNames]
3426=windows cd

[SourceDisksFiles]
usb4p2pnetadapter.sys = 3426

[Manufacturer]
%Microsoft% = Standard,NTamd64

[Standard.NTamd64]
%Usb4P2p.DeviceDesc% = Usb4P2p_Install, , USB4\USB4NET

[Usb4P2p_Install.NT]
CopyFiles = Usb4P2p.CopyFiles
AddReg = Install.ndi
AddReg = NetworkAddress.kw
AddReg = OffloadChecksum.kw
AddReg = TcpSeg.kw
AddReg = Rsc.kw

Characteristics = 0x81 ; NCF_VIRTUAL | NCF_HAS_UI
BusType = 15 ; PnpBus
*IfType = 0x6 ; IF_TYPE_ETHERNET_CSMACD
*MediaType = 0x0 ; NdisMedium802_3
*PhysicalMediaType = 14 ; NdisPhysicalMedium802_3
*IfConnectorPresent = 0 ; False
*ConnectionType = 1 ; NET_IF_CONNECTION_DEDICATED
*DirectionType = 0 ; NET_IF_DIRECTION_SENDRECEIVE
*AccessType = 2 ; NET_IF_ACCESS_BROADCAST
*HardwareLoopback = 0 ; false
EnableDhcp = 0 ; Disable DHCP

[Usb4P2p_Install.NT.HW]
AddReg = Usb4P2p_Install.NT.HW.AddReg

[Usb4P2p_Install.NT.HW.AddReg]
; Necessary to allow the network properties panel to work.
HKR, , Security, , "D:P(A;;GA;;;SY)(A;;GRGWGX;;;WD)"

[Usb4P2p.CopyFiles]
usb4p2pnetadapter.sys

[Install.ndi]
HKR, Ndi, Service, , "usb4p2pnetadapter"
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"

[Usb4P2p_Install.NT.Services]
AddService = usb4p2pnetadapter, 2, Usb4P2p_Service_Inst

[Usb4P2p_Service_Inst]
DisplayName = %Usb4P2p.ServiceName%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %13%\usb4p2pnetadapter.sys

[NetworkAddress.kw]
HKR,Ndi\params\NetworkAddress,                  ParamDesc,      0,  %NetworkAddress%
HKR,Ndi\params\NetworkAddress,                  type,           0,  "edit"
HKR,Ndi\params\NetworkAddress,                  default,        0,  ""
HKR,Ndi\params\NetworkAddress,                  LimitText,      0,  "12"
HKR,Ndi\params\NetworkAddress,                  UpperCase,      0,  "1"
HKR,Ndi\params\NetworkAddress,                  Optional,       0,  "1"

[OffloadChecksum.kw]
HKR,Ndi\params\*IPChecksumOffloadIPv4,          ParamDesc,      0,  %IPChksumOffv4%
HKR,Ndi\params\*IPChecksumOffloadIPv4,          default,        0,  "3"
HKR,Ndi\params\*IPChecksumOffloadIPv4,          type,           0,  "enum"
HKR,Ndi\params\*IPChecksumOffloadIPv4\enum,     "0",            0,  %Disabled%
HKR,Ndi\params\*IPChecksumOffloadIPv4\enum,     "1",            0,  %TxEnabled%
HKR,Ndi\params\*IPChecksumOffloadIPv4\enum,     "2",            0,  %RxEnabled%
HKR,Ndi\params\*IPChecksumOffloadIPv4\enum,     "3",            0,  %RxTxEnabled%

HKR,Ndi\params\*TCPChecksumOffloadIPv4,         ParamDesc,      0,  %TCPChksumOffv4%
HKR,Ndi\params\*TCPChecksumOffloadIPv4,         default,        0,  "3"
HKR,Ndi\params\*TCPChecksumOffloadIPv4,         type,           0,  "enum"
HKR,Ndi\params\*TCPChecksumOffloadIPv4\enum,    "0",            0,  %Disabled%
HKR,Ndi\params\*TCPChecksumOffloadIPv4\enum,    "1",            0,  %TxEnabled%
HKR,Ndi\params\*TCPChecksumOffloadIPv4\enum,    "2",            0,  %RxEnabled%
HKR,Ndi\params\*TCPChecksumOffloadIPv4\enum,    "3",            0,  %RxTxEnabled%

HKR,Ndi\params\*UDPChecksumOffloadIPv4,         ParamDesc,      0,  %UDPChksumOffv4%
HKR,Ndi\params\*UDPChecksumOffloadIPv4,         default,        0,  "3"
HKR,Ndi\params\*UDPChecksumOffloadIPv4,         type,           0,  "enum"
HKR,Ndi\params\*UDPChecksumOffloadIPv4\enum,    "0",            0,  %Disabled%
HKR,Ndi\params\*UDPChecksumOffloadIPv4\enum,    "1",            0,  %TxEnabled%
HKR,Ndi\params\*UDPChecksumOffloadIPv4\enum,    "2",            0,  %RxEnabled%
HKR,Ndi\params\*UDPChecksumOffloadIPv4\enum,    "3",            0,  %RxTxEnabled%

HKR,Ndi\params\*TCPChecksumOffloadIPv6,         ParamDesc,      0,  %TCPChksumOffv6%
HKR,Ndi\params\*TCPChecksumOffloadIPv6,         default,        0,  "3"
HKR,Ndi\params\*TCPChecksumOffloadIPv6,         type,           0,  "enum"
HKR,Ndi\params\*TCPChecksumOffloadIPv6\enum,    "0",            0,  %Disabled%
HKR,Ndi\params\*TCPChecksumOffloadIPv6\enum,    "1",            0,  %TxEnabled%
HKR,Ndi\params\*TCPChecksumOffloadIPv6\enum,    "2",            0,  %RxEnabled%
HKR,Ndi\params\*TCPChecksumOffloadIPv6\enum,    "3",            0,  %RxTxEnabled%

HKR,Ndi\params\*UDPChecksumOffloadIPv6,         ParamDesc,      0,  %UDPChksumOffv6%
HKR,Ndi\params\*UDPChecksumOffloadIPv6,         default,        0,  "3"
HKR,Ndi\params\*UDPChecksumOffloadIPv6,         type,           0,  "enum"
HKR,Ndi\params\*UDPChecksumOffloadIPv6\enum,    "0",            0,  %Disabled%
HKR,Ndi\params\*UDPChecksumOffloadIPv6\enum,    "1",            0,  %TxEnabled%
HKR,Ndi\params\*UDPChecksumOffloadIPv6\enum,    "2",            0,  %RxEnabled%
HKR,Ndi\params\*UDPChecksumOffloadIPv6\enum,    "3",            0,  %RxTxEnabled%

[TcpSeg.kw]
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"
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"
HKR,,                                           *LsoV1IPv4,     0,  "0"

[Rsc.kw]
HKR,Ndi\Params\*RscIPv4,                        ParamDesc,      0,  %RscIPv4%
HKR,Ndi\Params\*RscIPv4,                        default,        0,  "1"
HKR,Ndi\Params\*RscIPv4\Enum,                   "0",            0,  %Disabled%
HKR,Ndi\Params\*RscIPv4\Enum,                   "1",            0,  %Enabled%

HKR,Ndi\Params\*RscIPv6,                        ParamDesc,      0,  %RscIPv6%
HKR,Ndi\Params\*RscIPv6,                        default,        0,  "1"
HKR,Ndi\Params\*RscIPv6\Enum,                   "0",            0,  %Disabled%
HKR,Ndi\Params\*RscIPv6\Enum,                   "1",            0,  %Enabled%

[Strings]
Microsoft = "Microsoft Corporation"
Usb4P2p.DeviceDesc = "USB4(TM) P2P Network Adapter"
Usb4P2p.ServiceName = "USB4(TM) P2P Network Adapter"
NetworkAddress = "Network Address"
IPChksumOffv4 = "IPv4 Checksum Offload"
TCPChksumOffv4 = "TCP Checksum Offload (IPv4)"
UDPChksumOffv4 = "UDP Checksum Offload (IPv4)"
TCPChksumOffv6 = "TCP Checksum Offload (IPv6)"
UDPChksumOffv6 = "UDP Checksum Offload (IPv6)"
Enabled = "Enabled"
Disabled = "Disabled"
TxEnabled = "Tx Enabled"
RxEnabled = "Rx Enabled"
RxTxEnabled = "Rx & Tx Enabled"
LsoV2IPv4 = "Large Send Offload V2 (IPv4)"
LsoV2IPv6 = "Large Send Offload V2 (IPv6)"
RscIPv4 = "Receive Segment Coalescing (RSC IPv4)"
RscIPv6 = "Receive Segment Coalescing (RSC IPv6)"
