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

[version]
signature="$Windows NT$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%EMULEX%
;Real date: 12/07/2019
DriverVer=11/16/2017,12.6.165.8000
;
; Source file information
;
[SourceDisksNames]
1 = %elxstor.DeviceDesc%,lpscsi,,

[SourceDisksFiles]
elxstor.sys = 1

[DestinationDirs]
elxstor_CopyFiles  = 12 

[ControlFlags]
ExcludeFromSelect = *

[Manufacturer]
%EMULEX%=EMULEX, NTamd64

;**********************************
; Emulex Manufacturer device list
;**********************************
[EMULEX.NTamd64]
;Thor
%elxstor.DeviceDesc% = elxstor_101,  PCI\VEN_10DF&DEV_F0A1&SUBSYS_F0A110DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FC00&SUBSYS_FC0010DF
%elxstor.DeviceDesc% = elxstor_101,  PCI\VEN_10DF&DEV_F0A1&SUBSYS_F0A10E11
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FA00
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_F0A5

;Helios
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FC10&SUBSYS_FC1110DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FC10&SUBSYS_FC1210DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FD11&SUBSYS_FD1110DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FD12&SUBSYS_FD1210DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FD00
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_F0D5

;Zephyr
%elxstor.DeviceDesc% = elxstor_101,  PCI\VEN_10DF&DEV_F0E1&SUBSYS_F0E110DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FC20&SUBSYS_FC2110DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FC20&SUBSYS_FC2210DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FC20&SUBSYS_FC2A10DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FE11&SUBSYS_FE1110DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FE12&SUBSYS_FE1210DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FC20&SUBSYS_FC2E10DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FE04&SUBSYS_FE0410DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FC20&SUBSYS_FC2310DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FE00
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_F0E5

;Saturn
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_F011&SUBSYS_F01110DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_F112&SUBSYS_F11210DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_F111&SUBSYS_F11110DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FC40&SUBSYS_FC4210DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FC40&SUBSYS_FC4110DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_FC40&SUBSYS_FC4E10DF
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_E180&SUBSYS_3239103C
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_E100&SUBSYS_323A103C
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_E180&SUBSYS_323B103C
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_E100&SUBSYS_323C103C
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_F100
%elxstor.DeviceDesc% = elxstor_MSI,  PCI\VEN_10DF&DEV_F015

;Lancer FC
%elxstor.DeviceDesc% = elxstor_Lancer_MSI, PCI\VEN_10DF&DEV_E200

;Lancer G6
%elxstor.DeviceDesc% = elxstor_Lancer_MSI, PCI\VEN_10DF&DEV_E300

;Lancer G7
%elxstor.DeviceDesc% = elxstor_Lancer_MSI, PCI\VEN_10DF&DEV_F400

;
; The Install Section
;

[elxstor_MSI]
CopyFiles = elxstor_CopyFiles

[elxstor_MSI.HW]
Include = machine.inf
Needs   = PciIoSpaceNotRequired.HW
AddReg  = elxstor_Registry_Update_MSI

[elxstor_101]
CopyFiles = elxstor_CopyFiles

[elxstor_101.HW]
Include = machine.inf
Needs   = PciIoSpaceNotRequired.HW
AddReg  = elxstor_Registry_Update_MSI

[elxstor_Lancer_MSI]
CopyFiles = elxstor_CopyFiles

[elxstor_Lancer_MSI.HW]
Include = machine.inf
Needs   = PciIoSpaceNotRequired.HW
AddReg  = elxstor_Registry_Update_Lancer_MSI

[elxstor_CopyFiles]
elxstor.sys

[elxstor_Registry_Update]
HKLM,SYSTEM\CurrentControlSet\Services\elxstor\Parameters\PnPInterface,"5",0x00010001, 0x00000001
HKLM,SYSTEM\CurrentControlSet\Services\elxstor\Parameters,BusType,0x00010001,0x0000006

[elxstor_Registry_Update_MSI]
HKR,"Interrupt Management\Affinity Policy", GroupPolicy, 0x00010001, 1
HKR,"Interrupt Management\MessageSignaledInterruptProperties", MSISupported,       0x00010001, 1
HKR,"Interrupt Management\MessageSignaledInterruptProperties", MessageNumberLimit, 0x00010001, 8

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, 3
HKR,"Interrupt Management\MessageSignaledInterruptProperties\Range\1", DevicePolicy,    0x00010001, 0
HKR,"Interrupt Management\MessageSignaledInterruptProperties\Range\1", StartingMessage, 0x00010001, 4
HKR,"Interrupt Management\MessageSignaledInterruptProperties\Range\1", EndingMessage,   0x00010001, 7

[elxstor_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, 128

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, 127

[elxstor_MSI.Services]
AddService = elxstor, %SPSVCINST_ASSOCSERVICE%, elxstor_Service_Inst, Miniport_EventLog_Inst

[elxstor_101.Services]
AddService = elxstor, %SPSVCINST_ASSOCSERVICE%, elxstor_Service_Inst, Miniport_EventLog_Inst

[elxstor_Lancer_MSI.Services]
AddService = elxstor, %SPSVCINST_ASSOCSERVICE%, elxstor_Service_Inst, Miniport_EventLog_Inst

[elxstor_Service_Inst]
AddReg         = elxstor_Registry_Update
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_BOOT_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\elxstor.sys
LoadOrderGroup = SCSI Miniport

[Miniport_EventLog_Inst]
AddReg = Miniport_EventLog_AddReg

[Miniport_EventLog_AddReg]
HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll"
HKR,,TypesSupported,%REG_DWORD%,7

[Strings]
;Localizable strings
Msft               = "Microsoft"
EMULEX             = "Emulex"
elxstor.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
