;
; Installation inf for the NVME Miniport
;

[Version]
Signature="$Windows NT$"
Provider=%COMM%
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Class=SCSIAdapter
DriverVer=07/19/2018,1.4.1.0
CatalogFile.NTAMD64 = nvme64.cat
CatalogFile.NTx86   = nvme86.cat
CatalogFile=nvme64.cat

[PackageInfo]
Name=NVMe

[Manufacturer]
%COMM% = 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"
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, Namespaces,         %REG_DWORD%, 0x00000010 ; max number of namespaces supported
HKR, Parameters\Device, MaxTXSize,          %REG_DWORD%, 0x00020000 ; max trasnfer size
HKR, Parameters\Device, AdQEntries,         %REG_DWORD%, 0x00000080 ; admin queue size (num of entries)
HKR, Parameters\Device, IoQEntries,         %REG_DWORD%, 0x00000400 ; IO queue size (num of entries)
HKR, Parameters\Device, IntCoalescingTime,      %REG_DWORD%, 0x00000000 ; time threshold for INT coalescing
HKR, Parameters\Device, IntCoalescingEntries,       %REG_DWORD%, 0x00000000 ; # of entries threadhold for INT coalescing

;******************************************************************************
;*
;* 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]
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5760
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5761
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5762
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5763
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5765
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5766
;%COMMNvme.DeviceDesc% = nvme_inst, PCI\CC_010802
;%COMMNvmeChat.DeviceDesc% = nvme_inst, PCI\CC_010802

[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]
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5760
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5761
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5762
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5763
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5765
%CommNvme.DeviceDesc% = nvme_inst, PCI\VEN_10EC&DEV_5766
;%COMMNvme.DeviceDesc% = nvme_inst, PCI\CC_010802
;%COMMNvmeChat.DeviceDesc% = nvme_inst, PCI\CC_010802

[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"
CommNvme.DeviceDesc = "Realtek NVMe Controller"
COMM = "Realtek"

;
; Non-Localizable Strings
;

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