;
; 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.1.7601.18615
[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