;
; Copyright ©Samsung Electronics Co,. Ltd 2016
;

[Version]
Signature="$Windows NT$"
Provider=%SAM%
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Class=SCSIAdapter
CatalogFile=nvme.cat
DriverVer=07/26/2016,1.4.8.3

[Manufacturer]
%SAM% = COMM, NTamd64, NTx86   

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

[DestinationDirs]
DefaultDestDir   = 12

[nvme_Service_Inst]
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_BOOT_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\nvme.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\nvme.sys"
HKR, , TypesSupported, %REG_DWORD%, 7

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

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

[Parameters]
HKR, Parameters\Device, Namespaces,			%REG_DWORD%, 0x00000010
HKR, Parameters\Device, MaxTXSize, 			%REG_DWORD%, 0x00020000
HKR, Parameters\Device, AdQEntries,			%REG_DWORD%, 0x00000080
HKR, Parameters\Device, IoQEntries,			%REG_DWORD%, 0x00000400
HKR, Parameters\Device, IntCoalescingTime,		%REG_DWORD%, 0x00000000
HKR, Parameters\Device, IntCoalescingEntries,		%REG_DWORD%, 0x00000000
HKR, Parameters\Device, InitErrorLog,   		%REG_DWORD%, 0x00000000

;****************************************************************************** 
;* 
;* 32-BIT X86 ARCHITECTURE 
;* 
;* This section specifies the 32-bit architecture specific INF file entries 
;* required to install a driver as a 32-bit compatible driver. 
;* 
;****************************************************************************** 
[SourceDisksFiles.x86] 
nvme.sys = 1,,, 

[COMM.NTx86]
%COMMNvme400GBGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A800144D
%COMMNvme800GBGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A801144D
%COMMNvme1600GBGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A802144D
%COMMNvme800GBSMSFFGen.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A804144D
%COMMNvme1600GBSMSFFGen.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A805144D
%COMMNvme3200GBSMSFFGen.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A806144D
%COMMNvme1600GBSMHHGen.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A809144D
%COMMNvme3200GBSMHHGen.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A80A144D
%COMMNvmeUBX.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A802
%COMMNvme800GBPM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A801144D
%COMMNvme1600GBPM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A802144D
%COMMNvme3200GBPM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A803144D
%COMMNvme1920GBPM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A807144D
%COMMNvme3200GBPM1725HHHLGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A80D144D
%COMMNvme6400GBPM1725HHHLGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A80E144D
%COMMNvme800GBSM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A811144D
%COMMNvme1600GBSM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A812144D
%COMMNvme3200GBSM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A813144D
%COMMNvme6400GBSM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A814144D
%COMMNvme3200GBSM1725HHHLGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A81D144D
%COMMNvme6400GBSM1725HHHLGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A81E144D
%COMMNvme12800GBSM1725HHHLGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A81F144D
%COMMNvme400GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1F951028
%COMMNvme800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1F961028
%COMMNvme1600GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1F971028
%COMMNvmeSM1715SFF3200GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FA41028
%COMMNvmeSM1715AIC3200GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FA61028
%COMMNvmeSM1713SFF3800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FA51028
%COMMNvmeSM1713AIC3800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FA71028
%COMMNvmePMSFF3200GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FB71028
%COMMNvmePMAIC3200GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FB81028
%COMMNvmePMAIC6400GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FB91028
%COMMNvmeSM1715SFF800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FBA1028
%COMMNvmeSM1715SFF1600GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FBB1028
%COMMNvmeSM1715AIC1600GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FBC1028
%COMMNvmePMSFF800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FC11028
%COMMNvmePMSFF1600GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FC21028
%COMMNvmePMHHH1600GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FC41028
%COMMNvmePMHHH12800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FC51028

[nvme_inst.NTx86]
CopyFiles=@nvme.sys

[nvme_inst.NTx86.HW]
AddReg = msi_addreg

[nvme_inst.NTx86.Services]
AddService = nvme, 0x00000002 , nvme_Service_Inst, nvme_EventLog_Inst


;****************************************************************************** 
;* 
;* 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] 
nvme.sys = 1,,, 

[COMM.NTamd64]
%COMMNvme400GBGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A800144D
%COMMNvme800GBGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A801144D
%COMMNvme1600GBGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A802144D
%COMMNvme800GBSMSFFGen.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A804144D
%COMMNvme1600GBSMSFFGen.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A805144D
%COMMNvme3200GBSMSFFGen.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A806144D
%COMMNvme1600GBSMHHGen.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A809144D
%COMMNvme3200GBSMHHGen.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_A80A144D
%COMMNvmeUBX.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A802
%COMMNvme800GBPM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A801144D
%COMMNvme1600GBPM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A802144D
%COMMNvme3200GBPM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A803144D
%COMMNvme1920GBPM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A807144D
%COMMNvme3200GBPM1725HHHLGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A80D144D
%COMMNvme6400GBPM1725HHHLGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A80E144D
%COMMNvme800GBSM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A811144D
%COMMNvme1600GBSM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A812144D
%COMMNvme3200GBSM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A813144D
%COMMNvme6400GBSM1725SFFGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A814144D
%COMMNvme3200GBSM1725HHHLGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A81D144D
%COMMNvme6400GBSM1725HHHLGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A81E144D
%COMMNvme12800GBSM1725HHHLGen.DeviceDesc% 	= nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_A81F144D
%COMMNvme400GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1F951028
%COMMNvme800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1F961028
%COMMNvme1600GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1F971028
%COMMNvmeSM1715SFF3200GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FA41028
%COMMNvmeSM1715AIC3200GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FA61028
%COMMNvmeSM1713SFF3800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FA51028
%COMMNvmeSM1713AIC3800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FA71028
%COMMNvmePMSFF3200GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FB71028
%COMMNvmePMAIC3200GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FB81028
%COMMNvmePMAIC6400GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FB91028
%COMMNvmeSM1715SFF800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FBA1028
%COMMNvmeSM1715SFF1600GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FBB1028
%COMMNvmeSM1715AIC1600GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A820&SUBSYS_1FBC1028
%COMMNvmePMSFF800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FC11028
%COMMNvmePMSFF1600GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FC21028
%COMMNvmePMHHH1600GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FC41028
%COMMNvmePMHHH12800GB.DeviceDesc% = nvme_inst, PCI\VEN_144D&DEV_A821&SUBSYS_1FC51028

[nvme_inst.NTamd64]
CopyFiles=@nvme.sys

[nvme_inst.NTamd64.HW]
AddReg = msi_addreg

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


[Strings]
;
; Localizable Strings
;
diskId1 = "NVME Installation Disk"
CommNvme400GBGen.DeviceDesc 	= "NVMe XS1715 400GB Controller"
CommNvme800GBGen.DeviceDesc 	= "NVMe XS1715 800GB Controller"
CommNvme1600GBGen.DeviceDesc 	= "NVMe XS1715 1.6TB Controller"
COMMNvme800GBSMSFFGen.DeviceDesc 	= "NVMe SM1715 800GB Controller"
COMMNvme1600GBSMSFFGen.DeviceDesc 	= "NVMe SM1715 1.6TB Controller"
COMMNvme3200GBSMSFFGen.DeviceDesc 	= "NVMe SM1715 3.2TB Controller"
COMMNvme1600GBSMHHGen.DeviceDesc 	= "NVMe SM1715 1.6TB Controller"
COMMNvme3200GBSMHHGen.DeviceDesc 	= "NVMe SM1715 3.2TB Controller"
COMMNvmeUBX.DeviceDesc		= "Samsung NVMe Controller"
COMMNvme800GBPM1725SFFGen.DeviceDesc 	= "NVMe PM1725 800GB Controller"
COMMNvme1600GBPM1725SFFGen.DeviceDesc 	= "NVMe PM1725 1.6TB Controller"
COMMNvme3200GBPM1725SFFGen.DeviceDesc 	= "NVMe PM1725 3.2TB Controller"
COMMNvme1920GBPM1725SFFGen.DeviceDesc 	= "NVMe PM1725 1.92TB Controller"
COMMNvme3200GBPM1725HHHLGen.DeviceDesc 	= "NVMe PM1725 3.2TB Controller"
COMMNvme6400GBPM1725HHHLGen.DeviceDesc 	= "NVMe PM1725 6.4TB Controller"
COMMNvme800GBSM1725SFFGen.DeviceDesc 	= "NVMe SM1725 800GB Controller"
COMMNvme1600GBSM1725SFFGen.DeviceDesc 	= "NVMe SM1725 1.6TB Controller"
COMMNvme3200GBSM1725SFFGen.DeviceDesc	= "NVMe SM1725 3.2TB Controller"
COMMNvme6400GBSM1725SFFGen.DeviceDesc	= "NVMe SM1725 6.4TB Controller"
COMMNvme3200GBSM1725HHHLGen.DeviceDesc 	= "NVMe SM1725 3.2TB Controller"
COMMNvme6400GBSM1725HHHLGen.DeviceDesc 	= "NVMe SM1725 6.4TB Controller"
COMMNvme12800GBSM1725HHHLGen.DeviceDesc    = "NVMe SM1725 12.8TB Controller"
CommNvme400GB.DeviceDesc = "Dell Express Flash NVMe XS1715 400GB PCIe SSD Controller"
CommNvme800GB.DeviceDesc = "Dell Express Flash NVMe XS1715 800GB PCIe SSD Controller"
CommNvme1600GB.DeviceDesc = "Dell Express Flash NVMe XS1715 1.6TB PCIe SSD Controller"
COMMNvmeSM1715SFF3200GB.DeviceDesc = "Dell Express Flash NVMe SM1715a 3.2TB PCIe SSD Controller"
COMMNvmeSM1715AIC3200GB.DeviceDesc = "Dell Express Flash NVMe SM1715 3.2TB PCIe SSD Adapter by Samsung"
COMMNvmeSM1713SFF3800GB.DeviceDesc = "Dell Express Flash NVMe SM1713 3.8TB PCIe SSD Controller"
COMMNvmeSM1713AIC3800GB.DeviceDesc = "Dell Express Flash NVMe SM1713 3.8TB PCIe SSD Adapter by Samsung"
COMMNvmePMSFF3200GB.DeviceDesc = "Dell Express Flash NVMe PM1725 3.2TB PCIe SSD Controller"
COMMNvmePMAIC3200GB.DeviceDesc = "Dell Express Flash NVMe PM1725 3.2TB PCIe SSD Adapter by Samsung"
COMMNvmePMAIC6400GB.DeviceDesc = "Dell Express Flash NVMe PM1725 6.4TB PCIe SSD Adapter by Samsung"
COMMNvmeSM1715SFF800GB.DeviceDesc = "Dell Express Flash NVMe SM1715 800GB PCIe SSD Controller"
COMMNvmeSM1715SFF1600GB.DeviceDesc = "Dell Express Flash NVMe SM1715 1.6TB PCIe SSD Controller"
COMMNvmeSM1715AIC1600GB.DeviceDesc = "Dell Express Flash NVMe SM1715 1.6TB PCIe SSD Adapter by Samsung"
COMMNvmePMSFF800GB.DeviceDesc = "Dell Express Flash NVMe PM1725 800GB PCIe SSD Controller"
COMMNvmePMSFF1600GB.DeviceDesc = "Dell Express Flash NVMe PM1725 1.6TB PCIe SSD Controller"
COMMNvmePMHHH1600GB.DeviceDesc = "Dell Express Flash NVMe PM1725 1.6TB PCIe SSD Adapter by Samsung"
COMMNvmePMHHH12800GB.DeviceDesc = "Dell Express Flash NVMe PM1725 12.8TB PCIe SSD Adapter by Samsung"



SAM = "Samsung Electronics Co., Ltd"

;
; Non-Localizable Strings
;

REG_EXPAND_SZ  = 0x00020000
REG_DWORD      = 0x00010001
SERVICE_KERNEL_DRIVER  = 1
SERVICE_BOOT_START     = 0
SERVICE_ERROR_NORMAL   = 1
SERVICE_ERROR_CRITICAL = 3
