;-------------------------------------------------------------------------------
;
; OEMSETUP.INF - This INF installs HostRAID driver for suported Adaptec PCI
;		 SCSI devices for Windows 2000
;
; Copyright (c) 2011 Adaptec Incorporated
;
;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------
;
; [Version]
; Signature="signature-name"
; [Class=class-name]
; [ClassGuid={nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}]
; [Provider=%INF-creator%]
; [LayoutFile=filename.inf [,filename.inf]... ]
; [CatalogFile=filename.cat]
; [CatalogFile.nt=unique-filename.cat]
; [CatalogFile.ntx86=unique-filename.cat]
; DriverVer=mm/dd/yyyy[,x.y.v.z] 
;
; Class and ClassGUID are defined in devguid.h
; Provider typically specified as an %OrganizationName% token that is expanded
;	 later in the INF's Strings section
; LayoutFile 
;	INF files that are not distributed with the OS itself must omit this entry
;	and have SourceDisksNames and SourceDisksFiles sections instead
; DriverVer
;	This entry is required in Windows 2000 INFs. 
;	The mm/dd/yyyy value specifies the date of the driver package, including
;	the driver files and the INF. The x.y.v.z specifies an optional version
;	number. This value  is for display purposes only. A Windows 2000 INF should
;	have a DriverVer entry in the Version section to provide version
;	information for the whole DriverVer entries in the DDInstall sections are
;	more specific and take precedence over the global DriverVer entry in
;	the Version section. 
;-------------------------------------------------------------------------------

[Version]
signature="$Windows NT$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%INF_PROVIDER%
CatalogFile="aar81xx.cat"
DriverVer=02/23/2012,1.5.11999.1

;-------------------------------------------------------------------------------
; [SourceDisksNames] | [SourceDisksNames.x86] 
; diskid = %strkey% | ["]disk-description["][,[tagfile][,unused,path]]
;
; A SourceDisksNames section identifies the distribution disk that contain the
; source files to be transferred to the target machine during installation. 
;
; diskid 
;	Specifies a nonnegative integer that identifies a source disk. 
; disk-description 
;	Specifies a %strkey% token or a "quoted string" that describes the
;	contents and/or purpose of the disk identified by diskid. 
;	The installer can display the value of this string to the end user
;	during installation. Any disk-description that is not a %strkey% token
;	is a user-visible string that must be delimited by double-quote
;	characters (") if it has any leading or trailing spaces. 
; tagfile 
;	This optional value specifies the name of a tag file supplied on the
;	distribution disk, either in the root directory or in the given path
;	subdirectory, if any, of the disk. The value should specify only the
;	filename, not any directory or subdirectory. Setup uses a tag file to
;	verify that the user inserted the correct installation disk.
;	Tag files are only used for removeable media. 
; unused 
;	This is not used on Windows 2000. This value is only used in Windows 9x. 
; path 
;	This optional value specifies the path to the directory on the
;	distribution disk containing source files, including the tagfile if any.
;	If this value is omitted from an entry, files are assumed to be in the
;	root directory of the distribution disk. any tagfile supplied on the
;	distribution disk must reside either in the given path directory or, if
; 	path is omitted, in the root directory. 
;
;-------------------------------------------------------------------------------

[SourceDisksNames]
1 = %FLOPPY_DESCRIPTION%,,,\

;-------------------------------------------------------------------------------
; [SourceDisksFiles] | [SourceDisksFiles.x86] 
; filename = diskid[,[ subdir][, size]]
;
; A SourceDisksFiles section names the source files used during installation,
; identifies the source disks (or CD-ROM discs) that contain those files,
; and provides the path to the subdirectories, if any, on the distribution disks
; containing individual files. 
; 
; filename 
;	Specifies the name of the file on the source disk. 
; diskid 
;	Specifies the integer identifying the source disk that contains the file.
;	This value and the initial path to the subdir, if any, containing the
;	named file must be defined in a SourceDisksNames section of the same INF. 
; subdir 
;	This optional value specifies the subdirectory (relative to the
;	SourceDisksNames path specification, if any) on the source disk where the
;	named file resides. If this value is omitted from an entry, the named
;	source file is assumed to be in the root directory or in the path
;	directory that was specified in the SourceDisksNames section for the given
;	disk. 
; size 
;	This optional value specifies the uncompressed size, in bytes, of the
;	given file.
;
;-------------------------------------------------------------------------------

[SourceDisksFiles]
aar81xx.sys= 1,,

;[AdptMgtFiles]
;
; Dummy section to satisfy ChkInf tool
;

;-------------------------------------------------------------------------------
; [ControlFlags]
; 
; ExcludeFromSelect=* | 
; ExcludeFromSelect=hw-id[,hw-id] ... 
; [ExcludeFromSelect.nt=hw-id[,hw-id] ...]
; [ExcludeFromSelect.ntx86=hw-id[,hw-id] ...]
; [CopyFilesOnly=hw-id[,hw-id] ...]
; [InteractiveInstall=hw-id[,hw-id] ... ]
;
; Typically, a ControlFlags section has one or more ExcludeFromSelect entries to
; control which device(s) listed in the per-manufacturer Models section of INF
; file will not be displayed to the end user as options during manual
; installations. 
;
;-------------------------------------------------------------------------------
[ControlFlags]
;ExcludeFromSelect=

;-------------------------------------------------------------------------------
; [Manufacturer]
; manufacturer-name 
; [manufacturer-name] ... | 
; %strkey%=models-section-name
; [%strkey%=models-section-name] ...
;
; The Manufacturer section identifies the manufacturer of one or more devices
; that can be installed using the INF file. It also defines the Models section
; name for the installation of that manufacturer's devices and their driver(s). 
; 
; manufacturer-name 
;	Identifies the device(s)' manufacturer and the corresponding Models 
;	section elsewhere in the INF. Each such entry must uniquely identify 
;	the manufacturer within the INF file. However, an entry specified in 
;	this manner cannot be localized. 
; strkey 
;	Specifies a token, unique within the INF, representing the name of a
;	manufacturer. Each such %strkey% token must be defined in a Strings
;	section of the INF file. 
; models-section-name 
;	Specifies an INF-writer-defined name for the per-manufacturer Models 
;	section within the INF file. This value must be unique within the INF 
;	and must follow the same general rules for defining section names 
;	already described in General Syntax Rules for INF Files. 
;-------------------------------------------------------------------------------

[Manufacturer]
%ADP%= ADAPTEC

;-------------------------------------------------------------------------------
; [models-section-name]
; device-description=install-section-name,hw-id[,compatible-id...]
; [device-description=install-section-name,hw-id[,compatible-id]...] ...
;
; A per-manufacturer Models section identifies at least one device, references
; the DDInstall section of the INF file for that device, and specifies a
; unique-to-the-INF hardware identifier for that device. Any entry in the
; per-manufacturer Models section also can specify one or more additional device
; ID(s) for model(s) compatible with the device designated by the initial HW ID
; and controlled by the same driver(s).
;
; Each INF-writer-defined models-section-name must be referenced in the
; Manufacturer section of the INF file. There can be one or more entries in any
; per-manufacturer Models section, depending upon how many devices (and drivers)
; the INF file installs for a particular manufacturer.
;
; device-description 
;	Identifies a device to be installed, expressed as any unique combination
;	of explicitly visible characters or as a %strkey% token defined in a
;	Strings section of the INF file. 
; install-section-name 
;	Specifies an INF-writer-determined name of the DDInstall section for the
;	device (and compatible models of device, if any). 
; hw-id 
;	Specifies a vendor-defined string that identifies a device, which the PnP
;	Manager uses to find an INF-file match for this device. Such a hardware
;	ID has one of the following formats: 
;	enumerator\enumerator-specific-device-id 
; compatible-id 
;	Specifies a hw-id value compatible with that designated by the given 
;	hw-id. Any number of compatible-id values can be specified for an entry
;	in the Models section, each separated from the next by a comma (,). 
;	All such compatible devices and/or device models are controlled by the
;	same driver as the device designated by the initial hw-id. 
; 
;-------------------------------------------------------------------------------

[ADAPTEC]
;
; supported Serial ATA Marvell Vendor/Device IDs
;
; Marvell
%PCI\VEN_11AB&DEV_6041.DeviceDesc% = HostRAID_Inst,PCI\VEN_11AB&DEV_6041
%PCI\VEN_11AB&DEV_6081.DeviceDesc% = HostRAID_Inst,PCI\VEN_11AB&DEV_6081
%PCI\VEN_9005&DEV_0241.DeviceDesc% = HostRAID_Inst,PCI\VEN_9005&DEV_0241
%PCI\VEN_11AB&DEV_7042.DeviceDesc% = HostRAID_Inst,PCI\VEN_11AB&DEV_7042
%PCI\VEN_9005&DEV_0243.DeviceDesc% = HostRAID_Inst,PCI\VEN_9005&DEV_0243

; Management Device 
;%ADPTManagement.DeviceDesc%  = NODRV, SCSI\ProcessorADAPTEC_HostRAID________1.0_
;-------------------------------------------------------------------------------
; DDInstall Section
; [install-section-name] | 
; [install-section-name.nt] | 
; [install-section-name.ntx86] 
; 
; [DriverVer=mm/dd/yyyy[,x.y.v.z] ]
; [CopyFiles=@filename | file-list-section[,file-list-section] ...]
; AddReg=add-registry-section[,add-registry-section]...
; [Include=filename.inf[,filename2.inf]...]
; [Needs=inf-section-name[,inf-section-name]...]
; [Delfiles=file-list-section[,file-list-section]...]
; [Renfiles=file-list-section[,file-list-section]...]
; [DelReg=del-registry-section[,del-registry-section]...]
; [BitReg=bit-registry-section[,bit-registry-section]...]
; [LogConfig=log-config-section[,log-config-section]...]
; [ProfileItems=profile-items-section[,profile-items-section]...]
; [UpdateInis=update-ini-section[,update-ini-section]...]
; [UpdateIniFields=update-inifields-section[,update-inifields-section]...]
; [Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]
;
; Each per-Models DDInstall section contains an optional DriverVer entry and one
; or more directives referencing additional named sections in the INF file,
; shown here with the most commonly specified INF directives, CopyFiles and AddReg,
; listed first. 
;
; DriverVer
;	This optional entry specifies version information for the driver package.
;	The mm/dd/yyyy value specifies the date of the driver package, 
;	including the driver files and the INF. The x.y.v.z specifies an optional
;	version number. This value is for display purposes only.
;	When the OS searches for drivers, it chooses a driver with a more recent
;	DriverVer date over a driver with an earlier date. If there is a DriverVer
;	entry in a DDInstall section, the OS uses that entry instead of the one in
;	the Version section for that particular device. 
; CopyFiles
;	This directive either specifies one named file to be copied from the
;	source media to the destination or references one or more 
;	INF-writer-defined sections in which device-relevant file(s) on the 
;	source media are specified for transfer to the destination. 
;	The DefaultDestDir entry in the estinationDirs section of the INF 
;	specifies the destination for any single file to be copied. 
;	The SourceDisksNames and SourceDisksFiles sections provides the location
;	on the distribution media of the driver file(s). 
;
;-------------------------------------------------------------------------------

;[NODRV]
;
; Dummy directive to satisfy ChkInf tool
;
;CopyFiles = AdptMgtFiles

;[NODRV.Services]
;
; this is blank to just allow the install to succeed
;
;AddService = ,%SPSVCINST_ASSOCSERVICE% ; null service install

[HostRAID_Inst.nt]
CopyFiles=@aar81xx.sys

[HostRAID_Inst.nt.HW]
DelReg = LegacyScsiportValues

;-------------------------------------------------------------------------------
; DDInstall.Services Section
; [install-section-name.Services] |
; [install-section-name.nt.Services] |
; [install-section-name.ntx86.Services] 
;
; AddService=ServiceName,[flags],service-install-section[,
;            event-log-install-section[,[EventLogType][,EventName]]]...
; [DelService=ServiceName[,[flags][,[EventLogType][,EventName]]]...
; [Include=filename.inf[,filename2.inf]...]
; [Needs=inf-section-name[,inf-section-name]...]
;
; Each per-Models DDInstall.Services section contains one or more AddService
; directives referencing additional INF-writer-defined section(s) in a
; Windows 2000 INF file. 
;
;
; Flag = 0x00000002 (SPSVCINST_ASSOCSERVICE) 
;	Mark the named service as the PnP function driver (or legacy driver)
;	for the particular device being installed by this INF file. 
; EventLogType 
;	Optionally specifies one of System, Security, or Application.
;	If omitted, this defaults to System.
; EventName 
;	Optionally specifies a name to use for the event log.
;	If omitted, this defaults to the given ServiceName.
;-------------------------------------------------------------------------------

[HostRAID_Inst.nt.Services]
AddService = aar81xx, 0x00000002, HostRAID_Service_Inst, Miniport_EventLog_Inst

;-------------------------------------------------------------------------------
;
; [service-install-section]
; 
; [DisplayName=name]
; [Description=description-string]
; ServiceType=type-code
; StartType=start-code
; ErrorControl=error-control-level
; ServiceBinary=path-to-service
; [StartName=driver-object-name]
; [AddReg=add-registry-section[, add-registry-section] ...]
; [DelReg=del-registry-section[, del-registry-section] ...]
; [BitReg=bit-registry-section[,bit-registry-section] ...]
; [LoadOrderGroup=load-order-group-name]
; [Dependencies=depend-on-item-name[,depend-on-item-name]...]
;
; Any service-install-section must have at least the ServiceType, StartType, 
; ErrorControl, and ServiceBinary entries as shown here, 
; but the remaining entries are optional
;
; StartType 				ErrorControl
;	0x0 (SERVICE_BOOT_START) 		0x0 (SERVICE_ERROR_IGNORE)
;  	0x1 (SERVICE_SYSTEM_START)		0x1 (SERVICE_ERROR_NORMAL) 
;	0x2 (SERVICE_AUTO_START) 		0x2 (SERVICE_ERROR_SEVERE) 
;	0x3 (SERVICE_DEMAND_START) 		0x3 (SERVICE_ERROR_CRITICAL) 
;	0x4 (SERVICE_DISABLED) 
;
;	ServiceBinary
;		%12%  is equivalent to %windir%\system32\drivers on Windows 2000
;-------------------------------------------------------------------------------

[HostRAID_Service_Inst]
DisplayName=%DisplayDriverName%
ServiceType    = 1      ; SERVICE_KERNEL_DRIVER
StartType      = 0      ; SERVICE_BOOT_START
ErrorControl   = 1      ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\aar81xx.sys
LoadOrderGroup = SCSI Miniport
AddReg         = pnpsafe_pci_addreg
;AddReg         = TimeOutValue_addreg
AddReg         = QueueDepth_addreg
AddReg         = AlignmentMask_addreg
AddReg         = Bus_Type_Raid

;-------------------------------------------------------------------------------
; [add-registry-section]
; reg-root, [subkey], [value-entry-name], [flags], [value]
;
; reg-root
;	Identifies the root of the registry tree for other values supplied in 
;	this entry. The value can be one of the following: 
;	HKCR Abbreviation for HKEY_CLASSES_ROOT
;	HKCU Abbreviation for HKEY_CURRENT_USER 
;	HKLM Abbreviation for HKEY_LOCAL_MACHINE 
;	HKU Abbreviation for HKEY_USERS. 
;	HKR Relative to the registry key most pertinent to the section in which
;	this AddReg directive appears. 
; subkey 
;	This optional value, formed either as a %strkey% token defined in a 
;	Strings section of the INF or as a registry path under the given 
;	reg-root (key1\key2\key3...). 
; value-entry-name 
;	This optional value either names an existing value entry in the given
;	(existing) subkey or creates the name of a new value entry to be added in 
;	the specified subkey, whether it already exists or is a new key to be added 
;	to the registry. This value can be expressed either as "quoted string" or 
;	as a %strkey% token that is defined in the INF's Strings section.
; flag 
;	0x00010001 (= FLG_ADDREG_TYPE_DWORD) 
;	The given value entry and/or value is of the registry type REG_DWORD
; value 
;	This optionally specifies a new value for the specified value-entry-name
;	to be added to the given registry key
; 
; For details see 
; INF AddReg Directive and 
; Registry Entries for Plug and Play SCSI Miniport Drivers
;
; interfaces: PCIBus (5), Isa (1), Eisa (2) and PCMCIABus (8). 
; The value following REG_DWORD is a flag that indicates Plug and Play 
; support for the interface.
;-------------------------------------------------------------------------------

[Bus_Type_Raid]
HKR, "Parameters", "BusType", %FLG_ADDREG_TYPE_DWORD%, 0x00000008

[pnpsafe_pci_addreg]
HKR,"Parameters\PnpInterface","5",0x00010001,0x00000001

;[TimeOutValue_addreg]
HKLM,SYSTEM\CurrentControlSet\Services\Disk,TimeOutValue,0x00010001,0x0000001E

[QueueDepth_addreg]
HKLM,SYSTEM\CurrentControlSet\Services\aar81xx\Parameters\Device,NumberOfRequests,0x10001,28

[AlignmentMask_addreg]
HKLM,SYSTEM\CurrentControlSet\Services\aar81xx\Parameters\Device,"DriverParameter",0x00000000,"AM=3"
;-------------------------------------------------------------------------------
;
; [del-registry-section]
; 
; reg-root-string, subkey[, value-entry-name]
; ...
;
; A del-registry-section can have any INF-writer-determined number of entries,
; each on a separate line.
;
; reg-root-string 
;	Identifies the root of the registry tree for other values supplied in this
;	entry. The value can be one of the following: 
;
;	HKCR	Abbreviation for HKEY_CLASSES_ROOT. 
;	HKCU	Abbreviation for HKEY_CURRENT_USER. 
;	HKLM	Abbreviation for HKEY_LOCAL_MACHINE. 
;	HKU		Abbreviation for HKEY_USERS. 
;	HKR		Relative to the registry key most pertinent to the section in which
;			this DelReg directive appears, such as the per-device "hardware" 
;			subkey in the registry ..\Enum\enumeratorID\device-instance-id 
;			branch, the corresponding driver-specific "software" subkey under 
;			the registry ..Class\SetupClassGUID\device-instance-id branch, 
;			and so forth. 
;	 
; subkey 
;	This value, formed either as a %strkey% token defined in a Strings section
;	of the INF or as a registry path under the given reg-root (key1\key2\key3...),
;	specifies one of the following: A subkey to be deleted from the registry at
;	the end of the given registry path An existing subkey from which the given
;	value-entry-name is to be deleted 
; value-entry-name 
;	This value, formed either as a %strkey% token (defined in a Strings section)
;	or as a "quoted string" identifies a named value entry to be removed from
;	the given subkey. This value should be omitted if the given subkey is being
;	removed from the registry. 
;-------------------------------------------------------------------------------

[LegacyScsiportValues]
HKR,Scsiport,BusNumber
HKR,Scsiport,LegacyInterfaceType
HKR,Scsiport,SlotNumber

;-------------------------------------------------------------------------------
;
; Event Log Install
;
;The NT EventLog entries are the same for all SCSI miniports.
;
;-------------------------------------------------------------------------------

[Miniport_EventLog_Inst]
AddReg = Miniport_EventLog_AddReg

[Miniport_EventLog_AddReg]
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll"
HKR,,TypesSupported,0x00010001,7

;-------------------------------------------------------------------------------
; DestinationDirs Section
; [DestinationDirs]
; DefaultDestDir=dirid[,subdir]] 
; [file-list-section=dirid[,subdir]] ... 
; 
; A DestinationDirs section specifies the target destination directory or 
; directories for all copy, delete, and/or rename operations on files referenced
; by name elsewhere in the INF file. 
;
; dirid
;	12 - This is equivalent to %windir%\system32\drivers on 
;	     Windows 2000 platforms 
;-------------------------------------------------------------------------------

[DestinationDirs]
DefaultDestDir = 12            
                                
;-------------------------------------------------------------------------------
;
; [Strings]
;
;-------------------------------------------------------------------------------
[Strings]
INF_PROVIDER="Adaptec"
ADP="Adaptec"
FLOPPY_DESCRIPTION="Adaptec Embedded Serial ATA Driver"
;ADPTManagement.DeviceDesc = "Adaptec Processor Device (Pseudo)" 
DisplayDriverName = "Adaptec AAR-1420SA SATA device Driver"

;
; All Serial ATA HostRAID device IDs supported by this driver
;
; Marvell
PCI\VEN_11AB&DEV_6041.DeviceDesc = "Adaptec AAR-1420SA Serial ATA HostRAID Controller "
PCI\VEN_11AB&DEV_6081.DeviceDesc = "Adaptec AAR-1420SA Serial ATA HostRAID Controller "
PCI\VEN_9005&DEV_0241.DeviceDesc = "Adaptec AAR-1420SA Serial ATA HostRAID Controller " 
PCI\VEN_11AB&DEV_7042.DeviceDesc = "Adaptec AAR-1430SA Serial ATA HostRAID Controller "
PCI\VEN_9005&DEV_0243.DeviceDesc = "Adaptec AAR-1430SA Serial ATA HostRAID Controller "


;*******************************************
;Handy macro substitutions (non-localizable)
;SPSVCINST_ASSOCSERVICE = 0x00000002
FLG_ADDREG_TYPE_DWORD  = 0x00010001
