;*****************************************************************************
;*
;*  Copyright 2003-2024 Broadcom. All Rights Reserved. The term "Broadcom" 
;*  refers to Broadcom Inc. and/or its subsidiaries.
;*
;*
;*       OEMSETUP.INF - This file is used by Setup to install the Emulex STORPORT 
;*                Miniport driver elxfc.sys 
;*
;*                (for Emulex LightPulse Fibre Channel Host Bus Adapters)
;*
;*******************************************************************************

[version]
signature="$Windows NT$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%EMULEX%
Catalogfile=elxfc.cat
DriverVer=10/11/2024,14.4.393.20
PnpLockDown=1

[DestinationDirs]
elxfc_CopyFiles     = 12

[Manufacturer]
%EMULEX%=EMULEX, NTamd64

;**********************************
; Emulex Manufacturer device list
;**********************************
[EMULEX.NTamd64]

;Lancer-G6
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E30010DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E30110DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E31010DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E31110DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E31210DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E3F010DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E3F110DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E37010DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E37110DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E37210DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E37310DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E37410DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E37510DF

%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E32010DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E32110DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E32210DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E32310DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E32410DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E32510DF

%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_02011590
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_02021590
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_02131590
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_02141590
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_022E1590
 
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E33210DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E33310DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E33010DF
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E33110DF

%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300&SUBSYS_E34010DF

%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_E300

;Lancer-G7
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_F400

;Prism Plus
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_F500

;Prism Plus S
%elxfc.DeviceDesc% = elxfc_Lancer_MSI, PCI\VEN_10DF&DEV_F600

;
; The Install Section
;

[elxfc_Lancer_MSI]
CopyFiles = elxfc_CopyFiles

[elxfc_Lancer_MSI.HW]
Include = machine.inf
Needs   = PciIoSpaceNotRequired.HW
AddReg  = elxfc_Registry_Update_Lancer_MSI

;
; diskid = description,tagfile,unused,subdir
;
[SourceDisksNames]
1 = %elxfc.DeviceDesc%,,

;
; filename_on_source = diskid,subdir,size
;
[SourceDisksFiles]
elxfc.sys  = 1

[elxfc_CopyFiles]
elxfc.sys

[elxfc_Registry_Update]
HKR,Parameters\PnPInterface,"5",0x00010001, 0x00000001
HKR,Parameters,BusType,0x00010001,0x0000006
HKR,Parameters,Supports64BitAddressing,0x00010001,0x0000001

[elxfc_Registry_Update_Lancer_MSI]
HKR,"Interrupt Management\Affinity Policy", GroupPolicy, 0x00010001, 1

HKR,"Interrupt Management\MessageSignaledInterruptProperties", MSISupported,       0x00010001, 1
HKR,"Interrupt Management\MessageSignaledInterruptProperties", MessageNumberLimit, 0x00010001, 240

HKR,"Interrupt Management\MessageSignaledInterruptProperties\Range\0", DevicePolicy,    0x00010001, 5
HKR,"Interrupt Management\MessageSignaledInterruptProperties\Range\0", StartingMessage, 0x00010001, 0
HKR,"Interrupt Management\MessageSignaledInterruptProperties\Range\0", EndingMessage,   0x00010001, 239

[elxfc_Lancer_MSI.Services]
AddService = elxfc, %SPSVCINST_ASSOCSERVICE%, elxfc_Service_Inst, Miniport_EventLog_Inst

[elxfc_Service_Inst]
AddReg         = elxfc_Registry_Update
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_BOOT_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\elxfc.sys
LoadOrderGroup = SCSI Miniport

[Miniport_EventLog_Inst]
AddReg = Miniport_EventLog_AddReg

[Miniport_EventLog_AddReg]
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\elxfc.sys"
HKR,,TypesSupported,0x00010001,7

[Strings]
;Localizable strings
Msft               = "Microsoft"
EMULEX             = "Emulex"
elxfc.DeviceDesc = "Emulex LightPulse HBA - Storport Miniport Driver"

;Non-Localizable strings
SPSVCINST_ASSOCSERVICE = 0x00000002
SERVICE_KERNEL_DRIVER  = 1
SERVICE_BOOT_START     = 0
SERVICE_ERROR_NORMAL   = 1
REG_EXPAND_SZ          = 0x00020000
REG_DWORD              = 0x00010001
REG_SZ                 = 0x00000000
