; Copyright (c) 2009-2013 Intel Corporation 
; ********************************************************************************************** 
; **    Filename:  iaAHCIC.inf 
; **    Revision:  01/22/2013,12.0.0.1082
; **    Abstract:  Windows* INF File for AHCI Intel(R) Rapid Storage Technology Driver 
; **               Installs: RST AHCI Controller Miniport
; ********************************************************************************************** 
[Version] 
Signature="$Windows NT$" 
Provider=%INTEL% 
ClassGUID={4D36E96A-E325-11CE-BFC1-08002BE10318}
Class=HDC
CatalogFile=iaAHCIC.cat
DriverVer=01/22/2013,12.0.0.1082
;
[PackageInfo] 
Name=AHCI64
;
[SourceDisksNames] 
1 = %DiskId1%,,,"" 
[DestinationDirs] 
DefaultDestDir = 12 
;
[ControlFlags] 
ExcludeFromSelect = * 
;
[Manufacturer] 
%INTEL% = INTEL, NTamd64.5.2, NTamd64.6.2
;
[iaStorA_Service_Inst] 
ServiceType    = %SERVICE_KERNEL_DRIVER% 
StartType      = %SERVICE_BOOT_START% 
ErrorControl   = %SERVICE_ERROR_NORMAL% 
ServiceBinary  = %12%\iaStorA.sys 
LoadOrderGroup = SCSI miniport 
AddReg = pnpsafe_pci_addreg 
;
[iaStorA_EventLog_Inst] 
AddReg = iaStorA_EventLog_AddReg 
;
[iaStorA_EventLog_AddReg] 
HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\iaStorA.sys"
HKR,,TypesSupported,%REG_TYPE_DWORD%,7 
;
[iaStorF_Service_Inst] 
ServiceType = %SERVICE_KERNEL_DRIVER% 
StartType  = %SERVICE_BOOT_START% 
ErrorControl   = %SERVICE_ERROR_NORMAL% 
ServiceBinary  = %12%\iaStorF.sys 
;
[iaStorF_EventLog_Inst] 
AddReg = iaStorF_EventLog_AddReg 
;
[iaStorF_EventLog_AddReg] 
HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll"
HKR,,TypesSupported,%REG_TYPE_DWORD%,7 
;
;******************************************************** 
;* 
;* 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]
iaStorA.sys = 1,,,
iaStorF.sys = 1,,,
;
;WinXP to Win7
[INTEL.NTamd64.5.2]
%PCI\VEN_8086&DEV_3B29&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_3B29&CC_0106
%PCI\VEN_8086&DEV_3B2F&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_3B2F&CC_0106
%PCI\VEN_8086&DEV_3B22&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_3B22&CC_0106
%PCI\VEN_8086&DEV_1C02&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_1C02&CC_0106
%PCI\VEN_8086&DEV_1C03&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_1C03&CC_0106
%PCI\VEN_8086&DEV_1D02&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_1D02&CC_0106
%PCI\VEN_8086&DEV_1E02&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_1E02&CC_0106
%PCI\VEN_8086&DEV_1E03&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_1E03&CC_0106
%PCI\VEN_8086&DEV_8C02&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_8C02&CC_0106
%PCI\VEN_8086&DEV_8C03&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_8C03&CC_0106
;
;Win8 and above
[INTEL.NTamd64.6.2]
%PCI\VEN_8086&DEV_3B29&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_3B29&CC_0106
%PCI\VEN_8086&DEV_3B2F&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_3B2F&CC_0106
%PCI\VEN_8086&DEV_3B22&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_3B22&CC_0106
%PCI\VEN_8086&DEV_1C02&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_1C02&CC_0106
%PCI\VEN_8086&DEV_1C03&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_1C03&CC_0106
%PCI\VEN_8086&DEV_1D02&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_1D02&CC_0106
%PCI\VEN_8086&DEV_1E02&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_1E02&CC_0106
%PCI\VEN_8086&DEV_1E03&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_1E03&CC_0106
%PCI\VEN_8086&DEV_8C02&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_8C02&CC_0106
%PCI\VEN_8086&DEV_8C03&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_8C03&CC_0106
; 
[iaStorA_inst.NTamd64] 
CopyFiles=@iaStorA.sys
CopyFiles=@iaStorF.sys
FeatureScore=0x80
;
[iaStorA_inst_8.NTamd64] 
CopyFiles=@iaStorA.sys
FeatureScore=0x80
;
[iaStorA_inst.NTamd64.HW]
AddReg = iaStorF_addreg
AddReg = msi_addreg
AddReg = storport_addreg
;
[iaStorA_inst_8.NTamd64.HW]
AddReg = msi_addreg
AddReg = storport_addreg
;
[iaStorA_inst.ntamd64.Services] 
AddService = iaStorA, %SPSVCINST_ASSOCSERVICE%, iaStorA_Service_Inst, iaStorA_EventLog_Inst 
AddService = iaStorF, , iaStorF_Service_Inst, iaStorF_EventLog_Inst 
;
[iaStorA_inst_8.ntamd64.Services] 
AddService = iaStorA, %SPSVCINST_ASSOCSERVICE%, iaStorA_Service_Inst, iaStorA_EventLog_Inst 
;
[iaStorF_addreg] 
; Layer the RST Filter driver under all Disk class devices as a lower disk class filter 
;
HKLM, System\CurrentControlSet\Control\Class\{4d36e967-e325-11ce-bfc1-08002be10318}, LowerFilters, 0x00010008, iaStorF 
HKLM, System\CurrentControlSet\Control\Class\{4d36e965-e325-11ce-bfc1-08002be10318}, LowerFilters, 0x00010008, iaStorF 
;
[pnpsafe_pci_addreg]
; Use raw values for BusType, not a DEFINE, ChkInf fails on hex alpha chars 
; BusType_ATA == 0x3, BusTypeATA, BusType_RAID == 0x8, BusType_SATA == 0xb
HKR, Parameters\PnpInterface,  5,  %REG_TYPE_DWORD%,  0x00000001 
HKR, Parameters, BusType, %REG_TYPE_DWORD%,  0x0000000b
; Tell Storport in Win7/Srv08R2(KB982018) that driver can report 4K sector size (not needed in Win8)
HKR, Parameters\Device, EnableQueryAccessAlignment,  %REG_TYPE_DWORD%,  0x00000001
;
[Strings] 
; 
; Localizable Strings 
;
diskId1 = "RST AHCI Installation Disk" 
;client
PCI\VEN_8086&DEV_3B29&CC_0106.DeviceDesc = "Intel(R) 5 Series 4 Port SATA AHCI Controller"
PCI\VEN_8086&DEV_3B2F&CC_0106.DeviceDesc = "Intel(R) 5 Series 6 Port SATA AHCI Controller"
PCI\VEN_8086&DEV_3B22&CC_0106.DeviceDesc = "Intel(R) 5 Series/3400 Series SATA AHCI Controller"
PCI\VEN_8086&DEV_1C02&CC_0106.DeviceDesc = "Intel(R) Desktop/Workstation/Server Express Chipset SATA AHCI Controller"
PCI\VEN_8086&DEV_1C03&CC_0106.DeviceDesc = "Intel(R) Mobile Express Chipset SATA AHCI Controller"
PCI\VEN_8086&DEV_1D02&CC_0106.DeviceDesc = "Intel(R) C600 Series Chipset SATA AHCI Controller"
PCI\VEN_8086&DEV_1E02&CC_0106.DeviceDesc = "Intel(R) 7 Series/C216 Chipset Family SATA AHCI Controller"
PCI\VEN_8086&DEV_1E03&CC_0106.DeviceDesc = "Intel(R) 7 Series Chipset Family SATA AHCI Controller"
PCI\VEN_8086&DEV_8C02&CC_0106.DeviceDesc = "Intel(R) 8 Series/C220 Chipset Family SATA AHCI Controller"
PCI\VEN_8086&DEV_8C03&CC_0106.DeviceDesc = "Intel(R) 8 Series Chipset Family SATA AHCI Controller"
;
INTEL = "Intel Corporation"
;
; Non-Localizable Strings 
;
SPSVCINST_ASSOCSERVICE = 0x00000002 
REG_MULTI_SZ = 0x00010000 
REG_EXPAND_SZ = 0x00020000 
REG_TYPE_DWORD = 0x00010001 
SERVICE_KERNEL_DRIVER  = 1 
SERVICE_BOOT_START = 0 
SERVICE_ERROR_NORMAL   = 1
;
; MSI enables. 
;
[msi_addreg]  
HKR, Interrupt Management, 0x00000010  
HKR, Interrupt Management\MessageSignaledInterruptProperties, 0x00000010  
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, %REG_TYPE_DWORD%,   1  
HKR, Interrupt Management\MessageSignaledInterruptProperties, MessageNumberLimit, %REG_TYPE_DWORD%,   1 
;
[storport_addreg]
;;; Enables/Disables Idle Power Management for StorPort
HKR, StorPort, EnableIdlePowerManagement, %REG_TYPE_DWORD%, 0x00000001
;;; Force StorPort to keep all sense data in Pre-Win8 OSes (max value is 255)
HKR, StorPort, TotalSenseDataBytes, %REG_TYPE_DWORD%, 0x000000FF
