; Copyright (c) 2010-2020 Intel Corporation
; ****************************************************************************
; ****************************************************************************
; **    Filename:  IaRNVMe.inf
; **    Abstract:  Windows* INF File for Intel(R) NVMe Storage Devices
; ****************************************************************************
;

[Version]
Signature="$Windows NT$"
Provider=%INTEL%
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Class=SCSIAdapter
DriverVer = 12/17/2020,7.5.0.1990
CatalogFile = iarnvme.cat

[PackageInfo]
Name=NVMe

[Manufacturer]
%INTEL% = INTEL_NVME, NTamd64.6.3, NTamd64.10.0, NTamd64.10.0...14393

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

[DestinationDirs]
DefaultDestDir   = 12

[nvme_Service_Inst]
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_BOOT_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\IaRNVMe.sys
LoadOrderGroup = SCSI miniport
AddReg         = pnpsafe_pci_addreg
AddReg         = Parameters

[nvme_EventLog_Inst]
AddReg = nvme_EventLog_AddReg

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

[pnpsafe_pci_addreg]
HKR, "Parameters\PnpInterface", "5", %REG_DWORD%, 0x00000001
HKR, "Parameters", "BusType", %REG_DWORD%, 0x00000011

[msi_addreg]
HKR, Interrupt Management, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported,       %REG_DWORD%,   1
HKR, Interrupt Management\MessageSignaledInterruptProperties, MessageNumberLimit, %REG_DWORD%,   32
HKR, Interrupt Management\Affinity Policy, 0x00000010
HKR, Interrupt Management\Affinity Policy, DevicePolicy, %REG_DWORD%, 5 ;IrqPolicySpreadMessagesAcrossAllProcessors

[Parameters]
HKR, Parameters\Device, DisableDAS,           %REG_DWORD%, 0x00000000
HKR, Parameters\Device, StripeSizeBytes,      %REG_DWORD%, 0x00000000
HKR, Parameters\Device, MaxSplitCmds,         %REG_DWORD%, 0x00000002

;******************************************************************************
;*
;* 64-BIT X86 ARCHITECTURE
;*
;* This section specifies the 64-bit architecture specific INF file entries
;* required to install a driver as a 64-bit compatible driver.
;*
;******************************************************************************

[SourceDisksFiles.amd64]
IaRNVMe.sys = 1,,,

[INTEL_NVME.NTamd64.6.1]
%PCI\VEN_8086&DEV_0953.DeviceDesc% = nvme_inst, PCI\VEN_8086&DEV_0953
%PCI\VEN_8086&DEV_0A53.DeviceDesc% = nvme_inst, PCI\VEN_8086&DEV_0A53
%PCI\VEN_8086&DEV_0A54.DeviceDesc% = nvme_inst, PCI\VEN_8086&DEV_0A54
%PCI\VEN_8086&DEV_0A55.DeviceDesc% = nvme_inst, PCI\VEN_8086&DEV_0A55
;%PCI\VEN_8086&DEV_2700.DeviceDesc% = nvme_inst, PCI\VEN_8086&DEV_2700
%PCI\VEN_8086&DEV_2701.DeviceDesc% = nvme_inst, PCI\VEN_8086&DEV_2701
%PCI\VEN_8086&DEV_F1A6.DeviceDesc% = nvme_inst, PCI\VEN_8086&DEV_F1A6
%PCI\VEN_8086&DEV_0A60.DeviceDesc% = nvme_inst, PCI\VEN_8086&DEV_0A60

[INTEL_NVME.NTamd64.6.2]
%PCI\VEN_8086&DEV_0953.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0953
%PCI\VEN_8086&DEV_0A53.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A53
%PCI\VEN_8086&DEV_0A54.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A54
%PCI\VEN_8086&DEV_0A55.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A55
;%PCI\VEN_8086&DEV_2700.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_2700
%PCI\VEN_8086&DEV_2701.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_2701
%PCI\VEN_8086&DEV_F1A6.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_F1A6
%PCI\VEN_8086&DEV_0A60.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A60

[INTEL_NVME.NTamd64.6.3]
%PCI\VEN_8086&DEV_0953.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0953
%PCI\VEN_8086&DEV_0A53.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A53
%PCI\VEN_8086&DEV_0A54.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A54
%PCI\VEN_8086&DEV_0A55.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A55
;%PCI\VEN_8086&DEV_2700.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_2700
%PCI\VEN_8086&DEV_2701.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_2701
%PCI\VEN_8086&DEV_F1A6.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_F1A6
%PCI\VEN_8086&DEV_0A60.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A60

[INTEL_NVME.NTamd64.10.0]
%PCI\VEN_8086&DEV_0953.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0953
%PCI\VEN_8086&DEV_0A53.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A53
%PCI\VEN_8086&DEV_0A54.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A54
%PCI\VEN_8086&DEV_0A55.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A55
;%PCI\VEN_8086&DEV_2700.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_2700
%PCI\VEN_8086&DEV_2701.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_2701
%PCI\VEN_8086&DEV_F1A6.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_F1A6
%PCI\VEN_8086&DEV_0A60.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A60

[INTEL_NVME.NTamd64.10.0...14393]
%PCI\VEN_8086&DEV_0953.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0953
%PCI\VEN_8086&DEV_0A53.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A53
%PCI\VEN_8086&DEV_0A54.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A54
%PCI\VEN_8086&DEV_0A55.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A55
;%PCI\VEN_8086&DEV_2700.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_2700
%PCI\VEN_8086&DEV_2701.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_2701
%PCI\VEN_8086&DEV_F1A6.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_F1A6
%PCI\VEN_8086&DEV_0A60.DeviceDesc% = nvme_inst_8, PCI\VEN_8086&DEV_0A60

[nvme_inst.NTamd64]
CopyFiles=@IaRNVMe.sys
FeatureScore=0x70

[nvme_inst_8.NTamd64]
CopyFiles=@IaRNVMe.sys
FeatureScore=0x70

[nvme_inst.NTamd64.HW]
AddReg = msi_addreg

[nvme_inst_8.NTamd64.HW]
AddReg = msi_addreg

[nvme_inst.NTamd64.Services]
AddService = IaRNVMe, 0x00000002 , nvme_Service_Inst, nvme_EventLog_Inst

[nvme_inst_8.NTamd64.Services]
AddService = IaRNVMe, 0x00000002 , nvme_Service_Inst, nvme_EventLog_Inst

[Strings]
;Localizable
diskId1 = "NVME Installation Disk"
PCI\VEN_8086&DEV_0953.DeviceDesc = "Intel(R) Solid-State Drive P3700/P3600/P3500/P3520/750 Series"
PCI\VEN_8086&DEV_0A53.DeviceDesc = "Intel(R) Solid-State Drive DC P3520 Series"
PCI\VEN_8086&DEV_0A54.DeviceDesc = "Intel(R) SSD DC P4500/4600/4501/4601/4608 Series"
PCI\VEN_8086&DEV_0A55.DeviceDesc = "Intel(R) SSD DC 4600 Series"
;PCI\VEN_8086&DEV_2700.DeviceDesc = "Intel(R) Optane(tm) SSD 900P Series"
PCI\VEN_8086&DEV_2701.DeviceDesc = "Intel(R) Optane(tm) SSD DC P4800X Series"
PCI\VEN_8086&DEV_F1A6.DeviceDesc = "Intel(R) Solid-State Drive HarrisHarbor"
PCI\VEN_8086&DEV_0A60.DeviceDesc = "Intel SSD DC P5601/P5501 Series"
INTEL="Intel Corporation"

;*******************************************
;Non-Localizable
REG_EXPAND_SZ  = 0x00020000
REG_DWORD      = 0x00010001
SERVICE_KERNEL_DRIVER  = 1
SERVICE_BOOT_START     = 0
SERVICE_ERROR_NORMAL   = 1
SERVICE_FILE_SYSTEM_DRIVER = 2
SERVICE_DEMAND_START = 3
SERVICE_SYSTEM_START = 1
SPSVCINST_STARTSERVICE = 0x00000800
