;-------------------------------------------------------------------------
; nordlwf.INF -- Sample NDIS LightWeight Filter Driver
;
; Copyright (c) Microsoft Corporation.  All rights reserved.
;
; TODO: Search for comments marked "TODO:", and follow their instructions to
; customize this INF for your driver.  Then delete the "TODO:" comments.
;-------------------------------------------------------------------------

[version]
; Do not change these values
Signature       = "$Windows NT$"
Class           = NetService
ClassGUID       = {4D36E974-E325-11CE-BFC1-08002BE10318}                   
CatalogFile     = nordlwf.cat

; TODO: Customize this string for your company name
Provider        = %ProviderString%

; TODO: Customize this string for the driver version
DriverVer = 07/08/2020,9.53.40.426


; TODO: Include each architecture for which your driver package contains a
; compiled binary.  If you do not supply a driver compiled for ia64, delete the
; NTia64 section.
[Manufacturer]
%ManufacturerName%=Standard,NTx86,NTia64,NTamd64

; TODO: Change the "MS_nordlwf" name below to identify your component.
; This name can be used with netcfg.exe to install/uninstall the driver.
[Standard.NTx86]
%nordlwf_Desc%=Install, nordlwf

[Standard.NTia64]
%nordlwf_Desc%=Install, nordlwf

[Standard.NTamd64]
%nordlwf_Desc%=Install, nordlwf

;-------------------------------------------------------------------------
; Installation Section
;-------------------------------------------------------------------------
[Install]
AddReg=Inst_Ndi
; All LWFs must include the 0x40000 bit (NCF_LW_FILTER). Unlike miniports, you
; don't usually need to customize this value.
Characteristics=0x40000

; TODO: You must generate your own random GUID and insert it here.  Then, update
; FILTER_UNIQUE_NAME in filter.h to match this GUID identically.  Both should
; have {curly braces}.
NetCfgInstanceId="{82632b80-40fa-4e95-b6f4-a6f146825fe3}"
                    
Copyfiles = nordlwf.copyfiles.sys

[SourceDisksNames]
1=%nordlwf_Desc%,"",,

[SourceDisksFiles]
; TODO: Customize the name of your binary here.
; Also include any related files that should be installed with your driver.
nordlwf.sys=1

[DestinationDirs]
DefaultDestDir=12
nordlwf.copyfiles.sys=12

[nordlwf.copyfiles.sys]
; TODO: Customize the name of your binary here.
nordlwf.sys,,,2


;-------------------------------------------------------------------------
; Ndi installation support
;-------------------------------------------------------------------------
[Inst_Ndi]
; TODO: Customize the name of the NT service that will start your driver.
; Then, update FILTER_SERVICE_NAME in filter.h.
HKR, Ndi,Service,,"NordLwf"
; TODO: Repeat the NT service name above here.  Optionally, you may control
; other services alongside the primary service.
HKR, Ndi,CoServices,0x00010000,"NordLwf"
HKR, Ndi,HelpText,,%nordlwf_HelpText%
; TODO: Set the FilterClass here.  The FilterClass controls the order in which
; filters are bound to the underlying miniport.  Possible options include:
;     Custom, Diagnostic, Failover, Loadbalance, Vpn, Compression, Encryption, Scheduler
; See MSDN for a description of each.
HKR, Ndi,FilterClass,, compression
; TODO: Specify whether you have a Modifying or Monitoring filter.
; For a Monitoring filter, use this:
;     HKR, Ndi,FilterType,0x00010001, 1 ; Monitoring filter
; For a Modifying filter, use this:
;     HKR, Ndi,FilterType,0x00010001, 2 ; Modifying filter
HKR, Ndi,FilterType,0x00010001,2
; Do not change these values
HKR, Ndi\Interfaces,UpperRange,,"noupper"
HKR, Ndi\Interfaces,LowerRange,,"nolower"
; TODO: Ensure that the list of media types below is correct.  Typically,
; filters include "ethernet".  Filters may also include "ppip" to include
; native WWAN stacks, but you must be prepared to handle the packet framing.
; Possible values are listed on MSDN, but common values include:
;     ethernet, wan, ppip, wlan
HKR, Ndi\Interfaces, FilterMediaTypes,,"ethernet, wan, ppip"
; TODO: Specify whether you have a Mandatory or Optional filter.
; For a Mandatory filter, use this:
;     HKR, Ndi,FilterRunType,0x00010001, 1 ; Mandatory filter
; For an Optional filter, use this:
;     HKR, Ndi,FilterRunType,0x00010001, 2 ; Optional filter
HKR, Ndi,FilterRunType,0x00010001, 2 ; Optional filter

; By default, Mandatory filters unbind all protocols when they are
; installed/uninstalled, while Optional filters merely pause the stack.  If you
; would like to override this behavior, you can include these options.  These
; options only take effect with 6.30 filters on Windows "8" or later.
; To prevent a full unbind, and merely pause/restart protocols:
;     HKR, Ndi,UnbindOnAttach,0x00010001, 0 ; Do not unbind during FilterAttach
;     HKR, Ndi,UnbindOnDetach,0x00010001, 0 ; Do not unbind during FilterDetach
; To force a full unbind/bind (which includes pause/restart, of course):
;     HKR, Ndi,UnbindOnAttach,0x00010001, 1 ; Unbind during FilterAttach
;     HKR, Ndi,UnbindOnDetach,0x00010001, 1 ; Unbind during FilterDetach
;

; NDIS can start a miniport stack even if some Optional filters are
; missing.  However, NDIS reserves the right to wait for the Optional
; filters to be registered, since it's faster to attach a filter if
; the protocols haven't been bound yet.
; If your Optional filter is unlikely to be started at boot, you can
; use this hint to inform NDIS to spend less time waiting for your
; filter.  Note this setting is ignored for Mandatory filters; NDIS
; always waits forever for all Mandatory filters.
;     HKR, Ndi,NdisBootStart,0x00010001, 0 ; Don't wait for this driver to start at boot
; Enable this setting only if your filter will be bound, but the driver
; is not usually started at boot.  If your driver will typically start
; at boot, then enabling this setting would defeat the NDIS heuristic
; and slightly slow down boot.

;-------------------------------------------------------------------------
; Service installation support
;-------------------------------------------------------------------------
[Install.Services]
; TODO: Customize the name of your NT service here.
; You may also want to add the SPSVCINST_STARTSERVICE flag, like this:
;     AddService=nordlwf,0x800,nordlwf_Service_Inst ; SPSVCINST_STARTSERVICE
AddService=nordlwf,,nordlwf_Service_Inst

[nordlwf_Service_Inst]
DisplayName     = %nordlwf_Desc%
ServiceType     = 1 ;SERVICE_KERNEL_DRIVER
; Typically you will want your filter driver to start with SERVICE_SYSTEM_START.
; If it is an Optional filter, you may also use 3;SERVICE_DEMAND_START.
StartType       = 1 ;SERVICE_SYSTEM_START
ErrorControl    = 1 ;SERVICE_ERROR_NORMAL
; TODO: Customize this to your binary's filename.
ServiceBinary   = %12%\nordlwf.sys
LoadOrderGroup  = NDIS
Description     = %nordlwf_Desc%
AddReg          = Common.Params.reg, NdisImPlatformBindingOptions.reg

[Install.Remove.Services]
; TODO: Customize the name of your NT service here.
; The SPSVCINST_STOPSERVICE flag instructs SCM to stop the NT service
; before uninstalling the driver.
DelService=NordLwf,0x200 ; SPSVCINST_STOPSERVICE

[Common.Params.reg]
; TODO: You can add any sort of NDIS parameters here.  Filter drivers
; don't always need NDIS parameters, so it's okay to have nothing here.

; TODO: Remove the sample parameters below.

; Sample 1: "DriverParam" is a per-driver parameter.
HKR, FilterDriverParams\DriverParam,     ParamDesc,   , "Driverparam for lwf"
HKR, FilterDriverParams\DriverParam,     default,     , "5"
HKR, FilterDriverParams\DriverParam,     type,        , "int"

; Sample 2: "AdapterParam" is a per-module parameter.
HKR, FilterAdapterParams\AdapterParam,   ParamDesc,   , "Adapterparam for lwf"
HKR, FilterAdapterParams\AdapterParam,   default,     , "10"
HKR, FilterAdapterParams\AdapterParam,   type,        , "int"

[NdisImPlatformBindingOptions.reg]
; By default, when an LBFO team or Bridge is created, all filters will be
; unbound from the underlying members and bound to the TNic(s). This keyword
; allows a component to opt out of the default behavior
; To prevent binding this filter to the TNic(s):
;   HKR, Parameters, NdisImPlatformBindingOptions,0x00010001,1 ; Do not bind to TNic
; To prevent unbinding this filter from underlying members:
;   HKR, Parameters, NdisImPlatformBindingOptions,0x00010001,2 ; Do not unbind from Members
; To prevent both binding to TNic and unbinding from members:
;   HKR, Parameters, NdisImPlatformBindingOptions,0x00010001,3 ; Do not bind to TNic or unbind from Members
HKR, Parameters, NdisImPlatformBindingOptions,0x00010001,0 ; Subscribe to default behavior

[Strings]
; TODO: Customize these strings.
ProviderString = "NordVPN"
ManufacturerName = "TEFINCOM SA."
nordlwf_Desc = "NordVPN LightWeight Firewall"
nordlwf_HelpText = "NordVPN LightWeight Firewall, prevents IP leaks and ensures complete privacy."




