; ; Copyright (c) Microsoft Corporation, 2012 ; [Version] Signature = "$WINDOWS NT$" Class = SCSIAdapter ClassGUID = {4D36E97B-E325-11CE-BFC1-08002BE10318} Provider = %MSFT% PnpLockdown = 1 DriverVer=06/21/2006,6.3.9600.18698 [SourceDisksNames] ;3426 = windows cd 1 = %DiskName%,,, [SourceDisksFiles] ;stornvme.sys = 3426 stornvme.sys = 1 [DestinationDirs] ; DIRID_DRIVERS DefaultDestDir = 12 [ControlFlags] BasicDriverOk = * ExcludeFromSelect = * [Manufacturer] %MS-NVME% = NVME, NTamd64, NTx86 [NVME.NTamd64] %PCI\CC_010802.DeviceDesc% = Stornvme_Inst, PCI\CC_010802 [NVME.NTx86] %PCI\CC_010802.DeviceDesc% = Stornvme_Inst, PCI\CC_010802 [Stornvme_Inst] CopyFiles = Stornvme_copyfiles [Stornvme_copyfiles] stornvme.sys,,,0x100 [Stornvme_Inst.HW] AddReg = Stornvme_Inst_HW_AddReg [Stornvme_Inst_HW_AddReg] ; registry values related to MSI support HKR, Interrupt Management, 0x00000010 HKR, Interrupt Management\MessageSignaledInterruptProperties, 0x00000010 HKR, Interrupt Management\Affinity Policy, 0x00000010 ; ; The MSISupported entry determines whether the device supports MSIs. Set it to 1 to enable MSI support. ; HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, %REG_DWORD%, 1 ; ; The MessageNumberLimit entry specifies the maximum number of MSIs to allocate. ; For PCI 2.2, MessageNumberLimit must be 1, 2, 4, 8, or 16. For PCI 3.0, MessageNumberLimit can be any number up to 2,048. ; Set it to 65 so that 64 IO Queues and 1 Admin Queue can have different messages. ; Note that this number should be increased to "Processor Count + 1" if the driver runs on machine with more processors. ; HKR, Interrupt Management\MessageSignaledInterruptProperties, MessageNumberLimit, %REG_DWORD%, 65 ; ; Make sure all processor in group are used to serve interrupt from this device. IrqPolicySpreadMessagesAcrossAllProcessors (5) ; HKR, Interrupt Management\Affinity Policy, DevicePolicy, %REG_DWORD%, 5 ; ; Specifies that the device's interrupts are of high priority. This setting is appropriate for devices that require low latency. IrqPriorityHigh (3) ; HKR, Interrupt Management\Affinity Policy, DevicePriority, %REG_DWORD%, 3 ; ; Allow interrrupt happens on processors beyond group 0. (e.g. might be in a single group other than 0) ; HKR, Interrupt Management\Affinity Policy, GroupPolicy, %REG_DWORD%, 1 ; ; Enables Storport IPM for this adapter ; HKR, "StorPort", "EnableIdlePowerManagement", %REG_DWORD%, 0x01 [Stornvme_Inst.Services] AddService = stornvme, %SPSVCINST_ASSOCSERVICE%, Stornvme_Service_Inst, Stornvme_EventLog_Inst [Stornvme_Service_Inst] DisplayName = %StorNVMe_ServiceDesc% ServiceType = %SERVICE_KERNEL_DRIVER% StartType = %SERVICE_BOOT_START% ErrorControl = %SERVICE_ERROR_CRITICAL% ServiceBinary = %12%\stornvme.sys LoadOrderGroup = SCSI Miniport AddReg = nvme_registry_values ;AddReg = nvme_registry_device_specific_values [nvme_registry_values] HKR, "Parameters\PnpInterface", "5", %REG_DWORD%, 0x00000001 ; NOTE: bustype 0x11 is value of BusTypeNVMe HKR, "Parameters", "BusType", %REG_DWORD%, 0x00000011 ; Default timeout value 10 seconds HKR, "Parameters", "IoTimeoutValue", %REG_DWORD%, 0x0000000A ;[nvme_registry_device_specific_values] [Stornvme_EventLog_Inst] AddReg = Stornvme_EventLog_AddReg [Stornvme_EventLog_AddReg] HKR,, EventMessageFile, %REG_EXPAND_SZ%, "%%SystemRoot%%\System32\IoLogMsg.dll" HKR,, TypesSupported, %REG_DWORD%, 7 ;******************************************************** [Strings] ;Localizable DiskName = "Microsoft Standard NVM Express Driver" MSFT = "Microsoft" MS-NVME = "Standard NVM Express Controller" PCI\CC_010802.DeviceDesc = "Standard NVM Express Controller" StorNVMe_ServiceDesc = "Microsoft Standard NVM Express Driver" ;******************************************* ;Non-localizable SPSVCINST_ASSOCSERVICE = 0x00000002 SERVICE_KERNEL_DRIVER = 1 SERVICE_BOOT_START = 0 SERVICE_ERROR_NORMAL = 1 SERVICE_ERROR_CRITICAL = 3 REG_EXPAND_SZ = 0x00020000 REG_DWORD = 0x00010001 REG_MULTI_SZ = 0x00010000