; Copyright (c) Micron Technology, Inc.  All rights reserved.

[Version]
Signature="$Windows NT$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%MICRON%
DriverVer=06/10/2014,8.3.11130.0
CatalogFile=mtistorp.cat

[DestinationDirs]
DefaultDestDir  = 12 ; DIRID_DRIVERS

[SourceDisksNames]
1=%MICRON%,,,

[SourceDisksFiles]
mtistorp.sys=1

[Manufacturer]
%MICRON%=MTI_SSD,ntx86

[MTI_SSD.ntx86]
%DELL_P320h_25_175GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_00081344
%DELL_P320h_25_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_10081344
%DELL_P420m_25_175GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_00081344
%DELL_P420m_25_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_10081344
%DELL_P420m_25_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_20081344
%DELL_P420m_HHHL_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_12081344
%DELL_P420m_HHHL_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_22081344
%DELL_P420m_HHHL_1400GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_32081344

%Micron_P320h_25_175GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_00001344
%Micron_P320h_25_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_10001344
%Micron_P320h_FHHL_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_11001344
%Micron_P320h_FHHL_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_21001344
%Micron_P320h_HHHL_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_12001344
%Micron_P320h_HHHL_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_22001344
%Micron_P320h_HHHL_1400GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_32001344
%Micron_P420m_25_175GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_00001344
%Micron_P420m_25_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_10001344
%Micron_P420m_25_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_20001344
%Micron_P420m_HHHL_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_12001344
%Micron_P420m_HHHL_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_22001344
%Micron_P420m_HHHL_1400GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_32001344

%EMC_P320h_25_175GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_00041344
%EMC_P320h_25_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_10041344
%EMC_P320h_HHHL_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_12041344
%EMC_P320h_HHHL_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_22041344
%EMC_P320s_SLIC_175GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5152&SUBSYS_03041344
%EMC_P320s_SLIC_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5152&SUBSYS_13041344
%EMC_P320s_SLIC_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5152&SUBSYS_23041344
%EMC_P420m_25_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_10041344
%EMC_P420m_25_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_20041344
%EMC_P420m_HHHL_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_12041344
%EMC_P420m_HHHL_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_22041344
%EMC_P420m_HHHL_1400GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_32041344

%HP_P320h_HHHL_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_D0821590
%HP_P320h_HHHL_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_D0831590
%HP_P420m_HHHL_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_00971590
%HP_P420m_HHHL_1400GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_00981590
%HP_P420m_25_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_00991590
%HP_P420m_25_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_009A1590

%IBM_P320h_25_175GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_00061344
%IBM_P320h_25_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_10061344
%IBM_P320h_HHHL_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_12061344
%IBM_P320h_HHHL_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5150&SUBSYS_22061344
%IBM_P420m_25_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_10061344
%IBM_P420m_25_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_20061344
%IBM_P420m_HHHL_350GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_12061344
%IBM_P420m_HHHL_700GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_22061344
%IBM_P420m_HHHL_1400GB.DeviceDesc%=MTI_Inst, PCI\VEN_1344&DEV_5161&SUBSYS_32061344

[MTI_Inst.ntx86]
CopyFiles = MTI_copyfile


[MTI_Inst.ntx86.HW] ; device specific registry entries
AddReg = MTI_Hw_AddReg

[MTI_copyfile]
mtistorp.sys, , , 2

[MTI_Inst.ntx86.Services]
AddService = mtistorp, %SPSVCINST_ASSOCSERVICE%, MTI_Service_Inst, Miniport_EventLog_Inst

[MTI_Service_Inst]
DisplayName    = %DRIVER_SERVICE_DISPLAY_NAME%
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_BOOT_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\mtistorp.sys
LoadOrderGroup = SCSI Miniport
AddReg         = MTI_Inst_AddReg
AddReg         = pnpsafe_pci_addreg
AddReg         = bus_type_scsi
AddReg         = kb2468345

[MTI_Inst_AddReg]
HKR, , Tag, %REG_DWORD%, 1
HKR, , DeviceType, %REG_DWORD%, 0x0000002D
HKR, , Security, , "D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GRGWGX;;;WD)(A;;GRGWGX;;;RC)"
HKLM , "SYSTEM\CurrentControlSet\services\pci\Parameters", "13445150", 0x00000001,0,0,0,40,0,0,0,0
HKLM , "SYSTEM\CurrentControlSet\services\pci\Parameters", "13445161", 0x00000001,0,0,0,40,0,0,0,0

;*************************************************************
; This section should be used when installing services to indicate
; which interface types are safe for PNP and which are not.  
; INTERFACE_TYPE is defined in NTDDK.H
[pnpsafe_pci_addreg]
HKR, "Parameters\PnpInterface", "5", %REG_DWORD%, 0x00000001

;*************************************************************
; This section should be used for non-SCSI miniports
; to indicate what STORAGE_BUS_TYPE they actually do support.
[bus_type_scsi]
HKR, "Parameters", "BusType", %REG_DWORD%, 0x0000000B ; sata

;*************************************************************
;This addreg section should be used for KB2468345 
;to indicate support for 64 bit addresses
[kb2468345]
HKR, "Parameters", "Supports64BitAddressing", %REG_DWORD%, 0x00000001

[Miniport_EventLog_Inst]
AddReg = Miniport_EventLog_AddReg

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

[MTI_Hw_AddReg]
HKR, "ScsiPort", "NeedsSystemShutdownNotification", %REG_DWORD%, 1
HKR, "StorPort", "TotalSenseDataBytes", %REG_DWORD%, 255
HKR, Interrupt Management, , %FLG_ADDREG_KEYONLY%
HKR, Interrupt Management\MessageSignaledInterruptProperties, , %FLG_ADDREG_KEYONLY%
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, %REG_DWORD%, 1
HKR, Interrupt Management\MessageSignaledInterruptProperties, MessageNumberLimit, %REG_DWORD%, 1
; HKR, Interrupt Management\Affinity Policy, , %FLG_ADDREG_KEYONLY%
; DevicePolicy values:
; IrqPolicyMachineDefault (0) - use default policy for the computer
; IrqPolicyAllCloseProcessors (1) - connect interrupts to all processors of the near NUMA node
; IrqPolicyOneCloseProcessor (2) - connect interrupts to one processor
; IrqPolicyAllProcessorsInMachine (3) - connect interrupts to all processors in the machine
; IrqPolicySpecifiedProcessors (4) - connects interrupts according to AssignmentSetOverride
; IrqPolicySpreadMessagesAcrossAllProcessors (5) - assign different message-based interrupts to different processors
; HKR, Interrupt Management\Affinity Policy, DevicePolicy, %REG_DWORD%, 0x00000004
; HKR, Interrupt Management\Affinity Policy, AssignmentSetOverride, %REG_DWORD%, 0x000000FF
; DevicePriority values:
; IrqArbPriorityUndefined (0) - no interrupt priority policy. 
; IrqArbPriorityLow (1) - device can tolerate low IRQL
; IrqArbPriorityNormal (2) - device expects normal interrupt latencies
; IrqArbPriorityHigh (3) - device requires the lowest possible interrupt latency
; HKR, Interrupt Management\Affinity Policy, DevicePriority, %REG_DWORD%, 0x00000000

[strings]
DRIVER_SERVICE_DISPLAY_NAME="Micron PCIe SSD Driver"
MICRON="Micron Technology, Inc."

DELL_P320h_25_175GB.DeviceDesc="Dell Express Flash 175GB P320h PCIe Controller"
DELL_P320h_25_350GB.DeviceDesc="Dell Express Flash 350GB P320h PCIe Controller"
DELL_P420m_25_175GB.DeviceDesc="Dell Express Flash 175GB P420m PCIe Controller"
DELL_P420m_25_350GB.DeviceDesc="Dell Express Flash 350GB P420m PCIe Controller"
DELL_P420m_25_700GB.DeviceDesc ="Dell Express Flash 700GB P420m PCIe Controller"
DELL_P420m_HHHL_350GB.DeviceDesc="Dell Express Flash 350GB P420m HHHL PCIe Controller"
DELL_P420m_HHHL_700GB.DeviceDesc="Dell Express Flash 700GB P420m HHHL PCIe Controller"
DELL_P420m_HHHL_1400GB.DeviceDesc="Dell Express Flash 1400GB P420m HHHL PCIe Controller"

Micron_P320h_25_175GB.DeviceDesc="Micron RealSSD 175GB P320h 2.5 inch PCIe Controller"
Micron_P320h_25_350GB.DeviceDesc="Micron RealSSD 350GB P320h 2.5 inch PCIe Controller"
Micron_P320h_FHHL_350GB.DeviceDesc="Micron RealSSD 350GB P320h FHHL PCIe Controller"
Micron_P320h_FHHL_700GB.DeviceDesc="Micron RealSSD 700GB P320h FHHL PCIe Controller"
Micron_P320h_HHHL_350GB.DeviceDesc="Micron RealSSD 350GB P320h HHHL PCIe Controller"
Micron_P320h_HHHL_700GB.DeviceDesc="Micron RealSSD 700GB P320h HHHL PCIe Controller"
Micron_P320h_HHHL_1400GB.DeviceDesc="Micron RealSSD 1400GB P320h HHHL PCIe Controller"
Micron_P420m_25_175GB.DeviceDesc="Micron RealSSD 175GB P420m 2.5 inch PCIe Controller"
Micron_P420m_25_350GB.DeviceDesc="Micron RealSSD 350GB P420m 2.5 inch PCIe Controller"
Micron_P420m_25_700GB.DeviceDesc="Micron RealSSD 700GB P420m 2.5 inch PCIe Controller"
Micron_P420m_HHHL_350GB.DeviceDesc="Micron RealSSD 350GB P420m HHHL PCIe Controller"
Micron_P420m_HHHL_700GB.DeviceDesc="Micron RealSSD 700GB P420m HHHL PCIe Controller"
Micron_P420m_HHHL_1400GB.DeviceDesc="Micron RealSSD 1400GB P420m HHHL PCIe Controller"

EMC_P320h_25_175GB.DeviceDesc="EMC 175GB P320h 2.5 inch PCIe Controller"
EMC_P320h_25_350GB.DeviceDesc="EMC 350GB P320h 2.5 inch PCIe Controller"
EMC_P320h_HHHL_350GB.DeviceDesc="EMC 350GB P320h HHHL PCIe Controller"
EMC_P320h_HHHL_700GB.DeviceDesc="EMC 700GB P320h HHHL PCIe Controller"
EMC_P320s_SLIC_175GB.DeviceDesc="EMC 175GB P320s SLIC PCIe Controller"
EMC_P320s_SLIC_350GB.DeviceDesc="EMC 350GB P320s SLIC PCIe Controller"
EMC_P320s_SLIC_700GB.DeviceDesc="EMC 700GB P320s SLIC PCIe Controller"
EMC_P420m_25_350GB.DeviceDesc="EMC 350GB P420m 2.5 inch PCIe Controller"
EMC_P420m_25_700GB.DeviceDesc="EMC 700GB P420m 2.5 inch PCIe Controller"
EMC_P420m_HHHL_350GB.DeviceDesc="EMC 350GB P420m HHHL PCIe Controller"
EMC_P420m_HHHL_700GB.DeviceDesc="EMC 700GB P420m HHHL PCIe Controller"
EMC_P420m_HHHL_1400GB.DeviceDesc="EMC 1400GB P420m HHHL PCIe Controller"

HP_P320h_HHHL_350GB.DeviceDesc="HP 350GB SLC Workload Accelerator"
HP_P320h_HHHL_700GB.DeviceDesc="HP 700GB SLC Workload Accelerator"
HP_P420m_HHHL_700GB.DeviceDesc="HP 700GB MLC Workload Accelerator"
HP_P420m_HHHL_1400GB.DeviceDesc="HP 1.4TB MLC Workload Accelerator"
HP_P420m_25_350GB.DeviceDesc="HP 350GB MLC Workload Accelerator"
HP_P420m_25_700GB.DeviceDesc="HP 750GB MLC Workload Accelerator"

IBM_P320h_25_175GB.DeviceDesc="IBM 175GB P320h 2.5 inch PCIe Controller"
IBM_P320h_25_350GB.DeviceDesc="IBM 350GB P320h 2.5 inch PCIe Controller"
IBM_P320h_HHHL_350GB.DeviceDesc="IBM 350GB P320h HHHL PCIe Controller"
IBM_P320h_HHHL_700GB.DeviceDesc="IBM 700GB P320h HHHL PCIe Controller"
IBM_P420m_25_350GB.DeviceDesc="IBM 350GB P420m 2.5 inch PCIe Controller"
IBM_P420m_25_700GB.DeviceDesc="IBM 700GB P420m 2.5 inch PCIe Controller"
IBM_P420m_HHHL_350GB.DeviceDesc="IBM 350GB P420m HHHL PCIe Controller"
IBM_P420m_HHHL_700GB.DeviceDesc="IBM 700GB P420m HHHL PCIe Controller"
IBM_P420m_HHHL_1400GB.DeviceDesc="IBM 1400GB P420m HHHL PCIe Controller"

DISKNAME="Micron Driver Diskette"

;*******************************************
;Handy macro substitutions (non-localizable)
SPSVCINST_ASSOCSERVICE = 0x00000002
SERVICE_KERNEL_DRIVER  = 1
SERVICE_BOOT_START     = 0
SERVICE_ERROR_NORMAL   = 1
SERVICE_ERROR_CRITICAL = 3
REG_DWORD      = 0x00010001
REG_EXPAND_SZ  = 0x00020000
FLG_ADDREG_KEYONLY = 0x00000010
