; QL2X00.INF - This file is used by Setup to install QLogic PCI Fibre Channel Windows Server 2016 STOR PnP Miniport Driver
; Copyright 1996-2021 Marvell Semiconductor Inc.

[version]
signature="$Windows NT$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%QLOGIC%
CatalogFile=ql2300.cat
DriverVer = 09/09/2022,9.4.7.20

[SourceDisksNames]
1=%Qlogic_DriverLocation%,,,

[SourceDisksFiles]
ql2300.sys=1
qlsrvc.exe=1

[DestinationDirs]
DefaultDestDir = 12 ; DIRID_DRIVERS
QlServiceFileList = 11

[QlServiceFileList]
qlsrvc.exe

[Manufacturer]
%QLOGIC%=QLOGIC, NTamd64.6.2

;*******************************
;QLogic Manufacturer device list


[QLOGIC.NTamd64.6.2]
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_015F1077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01601077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01611077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01621077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01631077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01641077
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_015C1077
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_015D1077
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_015E1077
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3261103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3262103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3263103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3264103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3265103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3266103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3267103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3268103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3269103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_326A103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_326B103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_326C103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_326D103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_326E103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_326F103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3270103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3271103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_3272103C
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_338E103C
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01651077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01661077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01671077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01681077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01701077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01711077
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01721077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01731077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01741077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01751077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_01761077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_02841077
%ql2300.DeviceDesc8002103C% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2031&SUBSYS_8002103C
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2031
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2071
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2171
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2271
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2371
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2261&SUBSYS_02A71077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2261&SUBSYS_02A81077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2261&SUBSYS_02AB1077
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2261&SUBSYS_02AC1077
%ql2300.DeviceDesc02031590% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2261&SUBSYS_02031590
%ql2300.DeviceDesc02041590% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2261&SUBSYS_02041590
%ql2300.DeviceDesc00F91590% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2261&SUBSYS_00F91590
%ql2300.DeviceDesc00FA1590% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2261&SUBSYS_00FA1590
%ql2300.DeviceDesc022D1590% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2261&SUBSYS_022D1590
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2261
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2533&SUBSYS_02891077
%ql2300.DeviceDesc% = ql2300_NoIO_8R2_Inst, PCI\VEN_1077&DEV_2532&SUBSYS_00FC1590
%ql2300.DeviceDesc02D31590% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2281&SUBSYS_02D31590
%ql2300.DeviceDesc02D41590% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2281&SUBSYS_02D41590
%ql2300.DeviceDesc03691590% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2281&SUBSYS_03691590
%ql2300.DeviceDesc036A1590% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2281&SUBSYS_036A1590
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2081
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2281
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2089
%ql2300.DeviceDesc% = ql2300_8R2_Inst, PCI\VEN_1077&DEV_2289

[ControlFlags]
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_015F1077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01601077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01611077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01621077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01631077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01641077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_015C1077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_015D1077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_015E1077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3261103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3262103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3263103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3264103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3265103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3266103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3267103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3268103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3269103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_326A103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_326B103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_326C103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_326D103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_326E103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_326F103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3270103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3271103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_3272103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_338E103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01651077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01661077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01671077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01681077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01701077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01711077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01721077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01731077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01741077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01751077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_01761077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_02841077
ExcludeFromSelect = PCI\VEN_1077&DEV_2031&SUBSYS_8002103C
ExcludeFromSelect = PCI\VEN_1077&DEV_2031
ExcludeFromSelect = PCI\VEN_1077&DEV_2071
ExcludeFromSelect = PCI\VEN_1077&DEV_2171
ExcludeFromSelect = PCI\VEN_1077&DEV_2271
ExcludeFromSelect = PCI\VEN_1077&DEV_2371
ExcludeFromSelect = PCI\VEN_1077&DEV_2261&SUBSYS_02A71077
ExcludeFromSelect = PCI\VEN_1077&DEV_2261&SUBSYS_02A81077
ExcludeFromSelect = PCI\VEN_1077&DEV_2261&SUBSYS_02AB1077
ExcludeFromSelect = PCI\VEN_1077&DEV_2261&SUBSYS_02AC1077
ExcludeFromSelect = PCI\VEN_1077&DEV_2261&SUBSYS_02031590
ExcludeFromSelect = PCI\VEN_1077&DEV_2261&SUBSYS_02041590
ExcludeFromSelect = PCI\VEN_1077&DEV_2261&SUBSYS_00F91590
ExcludeFromSelect = PCI\VEN_1077&DEV_2261&SUBSYS_00FA1590
ExcludeFromSelect = PCI\VEN_1077&DEV_2261&SUBSYS_022D1590
ExcludeFromSelect = PCI\VEN_1077&DEV_2261
ExcludeFromSelect = PCI\VEN_1077&DEV_2533&SUBSYS_02891077
ExcludeFromSelect = PCI\VEN_1077&DEV_2532&SUBSYS_00FC1590
ExcludeFromSelect = PCI\VEN_1077&DEV_2281&SUBSYS_02D31590
ExcludeFromSelect = PCI\VEN_1077&DEV_2281&SUBSYS_02D41590
ExcludeFromSelect = PCI\VEN_1077&DEV_2081
ExcludeFromSelect = PCI\VEN_1077&DEV_2281
ExcludeFromSelect = PCI\VEN_1077&DEV_2089
ExcludeFromSelect = PCI\VEN_1077&DEV_2289

[ql2300_8R2_Inst]
CopyFiles = @ql2300.sys
CopyFiles = QlServiceFileList
AddReg = ql2300_Registry_Update

[ql2300_NoIO_8R2_Inst]
CopyFiles = @ql2300.sys
CopyFiles = QlServiceFileList
AddReg = ql2300_Registry_Update

[ql2300_Registry_Update]
HKLM,SYSTEM\CurrentControlSet\Services\ql2300\Parameters\Device,BusType,0x00010001,0x00000006
HKLM,SYSTEM\CurrentControlSet\Services\ql2300\Parameters,IoTimeoutValue,0x00010001,0x3C
HKLM,SYSTEM\CurrentControlSet\Services\ql2300\Parameters\Device,DriverParameter,0x00000002,""
HKLM,SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter, STORPORT, 0x00010001, 0x0000ffff
HKLM,SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter, STORMINIPORT, 0x00010001, 0x0000ffff

[ql2300_8R2_Inst.Services]
AddService = qlsrvc, %SPSVCSINST_STARTSERVICE%, qlsrvc_Service_Inst
AddService = ql2300, %SPSVCINST_ASSOCSERVICE%, ql2300_Service_Inst, Miniport_EventLog_Inst

[ql2300_NoIO_8R2_Inst.Services]
AddService = qlsrvc, %SPSVCSINST_STARTSERVICE%, qlsrvc_Service_Inst
AddService = ql2300, %SPSVCINST_ASSOCSERVICE%, ql2300_Service_Inst, Miniport_EventLog_Inst

[ql2300_Service_Inst]
DisplayName    = %ql2300.DriverDesc%
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_BOOT_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\ql2300.sys
LoadOrderGroup = SCSI Miniport
AddReg         = pnpsafe_pci_addreg

[qlsrvc_Service_Inst]
DisplayName    = %qlsrvc.DriverDesc%
ServiceType    = %SERVICE_WIN32_OWN_PROCESS%
StartType      = %SERVICE_AUTO_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %10%\System32\qlsrvc.exe

[pnpsafe_pci_addreg]
HKR, "Parameters\PnpInterface", "5", 0x00010001, 0x00000001

[Miniport_EventLog_Inst]
AddReg = Miniport_EventLog_AddReg

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

[ql2300_8R2_Inst.HW]
AddReg = ql2300_LM_Registry_Update
AddReg = ql2300_GP_Registry_Update

[ql2300_NoIO_8R2_Inst.HW]
AddReg = ql2300_LM_Registry_Update
AddReg = ql2300_GP_Registry_Update
Include=pci.inf
Needs=PciIoSpaceNotRequired.HW

[ql2300_LM_Registry_Update]
HKR,Interrupt Management,,0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, 0, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, 0x00010001, 1
HKLM,SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter, STORPORT, 0x00010001, 0x0000ffff
HKLM,SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter, STORMINIPORT, 0x00010001, 0x0000ffff
HKR, "Interrupt Management\Affinity Policy", 0, 0x00000010
HKR, "Interrupt Management\Affinity Policy", DevicePolicy, 0x00010001, 5

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

[Strings]
QLOGIC = "QLogic"
ql2300.DriverDesc = "QLogic Fibre Channel STOR Miniport Driver (wx64)"
ql2300.DeviceDesc = "QLogic Fibre Channel Adapter"
ql2300.DeviceDesc8002103C = "HPE Synergy 3830C 16G Fibre Channel Host Bus Adapter"
ql2300.DeviceDesc022D1590 = "Synergy 5830C 32Gb FC HBA"
ql2300.DeviceDesc02031590 = "HPE SN1600Q 32Gb 1p FC HBA"
ql2300.DeviceDesc02041590 = "HPE SN1600Q 32Gb 2p FC HBA"
ql2300.DeviceDesc00F91590 = "HPE SN1100Q 16Gb 1p FC HBA"
ql2300.DeviceDesc00FA1590 = "HPE SN1100Q 16Gb 2p FC HBA"
ql2300.DeviceDesc02D31590 = "HPE SN1610Q 32Gb 1p FC HBA"
ql2300.DeviceDesc02D41590 = "HPE SN1610Q 32Gb 2p FC HBA"
ql2300.DeviceDesc03691590 = "HPE SN1700Q 64Gb 1p FC HBA"
ql2300.DeviceDesc036A1590 = "HPE SN1700Q 64Gb 2p FC HBA"
Qlogic_DriverLocation = "QLogic Software Location"
qlsrvc.DriverDesc = "QLogic Fibre Channel Service"

;*******************************************
;Handy macro substitutions (non-localizable)
SPSVCINST_ASSOCSERVICE    = 0x00000002
SERVICE_KERNEL_DRIVER     = 1
SERVICE_BOOT_START        = 0
SERVICE_ERROR_NORMAL      = 1
SERVICE_WIN32_OWN_PROCESS = 0x00000010
SERVICE_AUTO_START        = 2
SPSVCSINST_STARTSERVICE   = 0x00000800 
REG_EXPAND_SZ             = 0x00020000
REG_DWORD                 = 0x00010001

