; ACSCM.INF (ACS Cryptomate Driver inf-file)
; Copyright (c) 2010 Advanced Card Systems Ltd
;

[Version]
DriverVer=12/06/2011,1.0.0.4
Signature="$CHICAGO$"
Class=SmartCardReader
ClassGuid={50DD5230-BA8A-11D1-BF5D-0000F805F530}
Provider=%ACS%
CatalogFile.NT=acscm.cat

[SourceDisksNames]
1 = %SourceDiskName%,,,""

[SourceDisksFiles]
acmtok98.sys 	= 1
acscmtok.sys 	= 1
acscmtokx64.sys = 1
acmsvr98.sys 	= 1
acscmsvr.sys 	= 1
acscmsvrx64.sys	= 1
acscm.dll    	= 1
acscmx64.dll	= 1
;for cryptomate 64
acm64t98.sys 	= 1
acm64tok.sys 	= 1
acm64tokx64.sys = 1
acm64s98.sys 	= 1
acm64svr.sys 	= 1
acm64svrx64.sys	= 1
acscm64.dll    	= 1
acscm64x64.dll	= 1

[DestinationDirs]
ACSTOK.CopySYS		    = 10,System32\Drivers
ACSTOK.CopySYS.NTx86 	    = 12
ACSTOK.CopySYS.NTamd64 	    = 12
ACSSVR.CopySYS		    = 10,System32\Drivers
ACSSVR.CopySYS.NTx86 	    = 12
ACSSVR.CopySYS.NTamd64 	    = 12
CoInstaller.CopyDLL.NTx86   = 11
CoInstaller.CopyDLL.NTamd64 = 11
;for cryptomate 64
ACSTOK64.CopySYS		    = 10,System32\Drivers
ACSTOK64.CopySYS.NTx86 	    = 12
ACSTOK64.CopySYS.NTamd64 	    = 12
ACSSVR64.CopySYS		    = 10,System32\Drivers
ACSSVR64.CopySYS.NTx86 	    = 12
ACSSVR64.CopySYS.NTamd64 	    = 12
CoInstaller64.CopyDLL.NTx86   = 11
CoInstaller64.CopyDLL.NTamd64 = 11

; ================= Class section =====================

[ClassInstall32]
Addreg=SmartCardReaderClassReg     

[ClassInstall]
Addreg=SmartCardReaderClassReg

[SmartCardReaderClassReg]
HKR,,,0,%ClassName%
HKR,,Icon,,-25
HKLM,"\Software\Microsoft\Cryptography\Calais\Readers",,,

[Manufacturer]
%ACS%=ACS,NTamd64

; ================= ACS CryptoMate Reader ==============

[ACS]
%ACSTOK.DeviceDesc% = ACSTOK, USB\VID_072F&PID_9006
%ACSSVR.DeviceDesc% = ACSSVR, *ACO0000
;for cryptomate 64
%ACSTOK64.DeviceDesc% = ACSTOK64, USB\VID_072F&PID_90DB
%ACSSVR64.DeviceDesc% = ACSSVR64, *ACO0001

[ACS.NTamd64]
%ACSTOK.DeviceDesc% = ACSTOK, USB\VID_072F&PID_9006
%ACSSVR.DeviceDesc% = ACSSVR, *ACO0000
;for cryptomate 64
%ACSTOK64.DeviceDesc% = ACSTOK64, USB\VID_072F&PID_90DB
%ACSSVR64.DeviceDesc% = ACSSVR64, *ACO0001

[ACSTOK]
AddReg          = ACSSVR.AddReg,  ACSTOK.AddReg
CopyFiles	= ACSSVR.CopySYS, ACSTOK.CopySYS

[ACSTOK.NTx86]
AddReg          = ACSTOK.AddReg.NT
CopyFiles	= ACSTOK.CopySYS.NTx86

[ACSTOK.NTamd64]
AddReg          = ACSTOK.AddReg.NT
CopyFiles	= ACSTOK.CopySYS.NTamd64

[ACSSVR]
; dummy entry...

[ACSSVR.NTx86]
AddReg          = ACSSVR.AddReg.NT
CopyFiles	= ACSSVR.CopySYS.NTx86

[ACSSVR.NTamd64]
AddReg          = ACSSVR.AddReg.NT
CopyFiles	= ACSSVR.CopySYS.NTamd64

[ControlFlags]
ExcludeFromSelect         = *ACO0000, *ACO0001
ExcludeFromSelect.NTamd64 = *ACO0000, *ACO0001

; ================= ACS CryptoMate 64 Reader ==============

[ACSTOK64]
AddReg          = ACSSVR64.AddReg,  ACSTOK64.AddReg
CopyFiles	= ACSSVR64.CopySYS, ACSTOK64.CopySYS

[ACSTOK64.NTx86]
AddReg          = ACSTOK64.AddReg.NT
CopyFiles	= ACSTOK64.CopySYS.NTx86

[ACSTOK64.NTamd64]
AddReg          = ACSTOK64.AddReg.NT
CopyFiles	= ACSTOK64.CopySYS.NTamd64

[ACSSVR64]
; dummy entry...

[ACSSVR64.NTx86]
AddReg          = ACSSVR64.AddReg.NT
CopyFiles	= ACSSVR64.CopySYS.NTx86

[ACSSVR64.NTamd64]
AddReg          = ACSSVR64.AddReg.NT
CopyFiles	= ACSSVR64.CopySYS.NTamd64

; ================= ACS Cryptomate Token (Win98/ME) ===============

[ACSTOK.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,acscmtok.sys
HKR,,AdapterType, 0, "0100"
HKR,,"VendorName",0,%Vendor%
HKR,,"IFDName",0,%Reader%
HKR,,"CardType",0,%CardType%
HKR,,"SFDT",0,%SFDT%
HKR,,"CardVoltage",0,%CardVoltage%

[ACSTOK.CopySYS]
acscmtok.sys,acmtok98.sys
acscmsvr.sys,acmsvr98.sys

; ================= ACS Cryptomate Server (Win98/ME) ===============

[ACSSVR.AddReg]
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965",,,
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "DevLoader",,        "*ntkern"
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "NTMPDriver",,       "acscmsvr.sys"
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "ProviderName",,     %ACS%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "DriverDesc",,       %ACSSVR.DeviceDesc%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "MatchingDeviceId",, "*ACO0000"
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "DriverDate",,       "11-14-2009"
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "AdapterType,  0,    "0100"
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "VendorName",  0,    %Vendor%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "IFDName",     0,    %Reader%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "CardType",    0,    %CardType%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "SFDT",        0,    %SFDT%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "CardVoltage", 0,    %CardVoltage%

HKLM, "Enum\Root\SmartCardReader",,,
HKLM, "Enum\Root\SmartCardReader\0010","Class",,        "SmartCardReader"
HKLM, "Enum\Root\SmartCardReader\0010","ClassGUID",,    "{50DD5230-BA8A-11D1-BF5D-0000F805F530}"
HKLM, "Enum\Root\SmartCardReader\0010", "Mfg",,         %ACS%
HKLM, "Enum\Root\SmartCardReader\0010", "HardwareID",,  "*ACO0000"
HKLM, "Enum\Root\SmartCardReader\0010", "Driver",,      "SmartCardReader\2965"
HKLM, "Enum\Root\SmartCardReader\0010", "ConfigFlags",  1, 00,00,00,00
HKLM, "Enum\Root\SmartCardReader\0010", "Capabilities", 1, 00,00,00,00
HKLM, "Enum\Root\SmartCardReader\0010\Reader0",,,

[ACSSVR.CopySYS]
acscmsvr.sys,acmsvr98.sys

; ================= ACS Cryptomate Token (W2K and up) ===============

[ACSTOK.AddReg.NT]
HKR,,AdapterType, 0, "0100"
HKR,,"VendorName",0,%Vendor%
HKR,,"IFDName",0,%Reader%
HKR,,"CardType",0,%CardType%
HKR,,"SFDT",0,%SFDT%
HKR,,"CardVoltage",0,%CardVoltage%
HKLM,"System\CurrentControlSet\Services\SCardSvr","Start", 0x00010001,2
HKLM,"System\CurrentControlSet\Services\CertPropSvc","Start", 0x00010001,2

[ACSTOK.CopySYS.NTx86]
acscmtok.sys
acscmsvr.sys

[ACSTOK.CopySYS.NTamd64]
acscmtok.sys,acscmtokx64.sys
acscmsvr.sys,acscmsvrx64.sys

[ACSTOK.NTx86.Services]
AddService = ACSCMTOK, 2, ACSTOK.Service, ACSTOK.EventLog

[ACSTOK.NTamd64.Services]
AddService = ACSCMTOK, 2, ACSTOK.Service, ACSTOK.EventLog

[ACSTOK.Service]
DisplayName     = %ACSTOK.DeviceDesc%
ServiceType     = 1 ;%SERVICE_KERNEL_DRIVER%
StartType       = 3 ;%SERVICE_DEMAND_START%
ErrorControl    = 1 ;%SERVICE_ERROR_NORMAL%
ServiceBinary   = %12%\acscmtok.sys

[ACSTOK.EventLog]
AddReg = ACSTOK.AddEventLog.reg

[ACSTOK.AddEventLog.reg]
HKR,, EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\drivers\acscmtok.sys"
HKR,, TypesSupported,   0x00010001, 7

[ACSTOK.NTx86.CoInstallers]
CopyFiles       = CoInstaller.CopyDLL.NTx86
AddReg          = CoInstaller.AddReg

[ACSTOK.NTamd64.CoInstallers]
CopyFiles       = CoInstaller.CopyDLL.NTamd64
AddReg          = CoInstaller.AddReg

[CoInstaller.CopyDLL.NTx86]
acscm.dll

[CoInstaller.CopyDLL.NTamd64]
acscm.dll,acscmx64.dll

[CoInstaller.AddReg]
HKR,,CoInstallers32,0x10000,"acscm.dll,ACSCMServerCoInstaller"

; ================= ACS Cryptomate Server (W2K and up) ===============

[ACSSVR.AddReg.NT]
HKR,, AdapterType, 0, "0100"
HKR,,"VendorName",0,%Vendor%
HKR,,"IFDName",0,%Reader%
HKR,,"CardType",0,%CardType%
HKR,,"SFDT",0,%SFDT%
HKR,,"CardVoltage",0,%CardVoltage%
HKLM,"System\CurrentControlSet\Services\SCardSvr","Start", 0x00010001,2

[ACSSVR.CopySYS.NTx86]
acscmsvr.sys

[ACSSVR.CopySYS.NTamd64]
acscmsvr.sys,acscmsvrx64.sys

[ACSSVR.NTx86.Services]
AddService = ACSCMSVR, 2, ACSSVR.Service, ACSSVR.EventLog

[ACSSVR.NTamd64.Services]
AddService = ACSCMSVR, 2, ACSSVR.Service, ACSSVR.EventLog

[ACSSVR.Service]
DisplayName     = %ACSSVR.DeviceDesc%
ServiceType     = 1 ;%SERVICE_KERNEL_DRIVER%
StartType       = 3 ;%SERVICE_DEMAND_START%
ErrorControl    = 1 ;%SERVICE_ERROR_NORMAL%
ServiceBinary   = %12%\acscmsvr.sys

[ACSSVR.EventLog]
AddReg = ACSSVR.AddEventLog.reg

[ACSSVR.AddEventLog.reg]
HKR,, EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\drivers\acscmsvr.sys"
HKR,, TypesSupported,   0x00010001, 7

; ================= ACS Cryptomate 64 Token (Win98/ME) ===============

[ACSTOK64.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,acm64tok.sys
HKR,,AdapterType, 0, "0100"
HKR,,"VendorName",0,%Vendor%
HKR,,"IFDName",0,%Reader64%
HKR,,"CardType",0,%CardType%
HKR,,"SFDT",0,%SFDT%
HKR,,"CardVoltage",0,%CardVoltage%

[ACSTOK64.CopySYS]
acm64tok.sys,acm64t98.sys
acm64svr.sys,acm64s98.sys

; ================= ACS Cryptomate 64 Server (Win98/ME) ===============

[ACSSVR64.AddReg]
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965",,,
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "DevLoader",,        "*ntkern"
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "NTMPDriver",,       "acm64svr.sys"
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "ProviderName",,     %ACS%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "DriverDesc",,       %ACSSVR64.DeviceDesc%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "MatchingDeviceId",, "*ACO0001"
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "DriverDate",,       "11-14-2009"
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "AdapterType,  0,    "0100"
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "VendorName",  0,    %Vendor%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "IFDName",     0,    %Reader64%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "CardType",    0,    %CardType%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "SFDT",        0,    %SFDT%
HKLM, "\System\CurrentControlSet\Services\Class\SmartCardReader\2965", "CardVoltage", 0,    %CardVoltage%

HKLM, "Enum\Root\SmartCardReader",,,
HKLM, "Enum\Root\SmartCardReader\0010","Class",,        "SmartCardReader"
HKLM, "Enum\Root\SmartCardReader\0010","ClassGUID",,    "{50DD5230-BA8A-11D1-BF5D-0000F805F530}"
HKLM, "Enum\Root\SmartCardReader\0010", "Mfg",,         %ACS%
HKLM, "Enum\Root\SmartCardReader\0010", "HardwareID",,  "*ACO0001"
HKLM, "Enum\Root\SmartCardReader\0010", "Driver",,      "SmartCardReader\2965"
HKLM, "Enum\Root\SmartCardReader\0010", "ConfigFlags",  1, 00,00,00,00
HKLM, "Enum\Root\SmartCardReader\0010", "Capabilities", 1, 00,00,00,00
HKLM, "Enum\Root\SmartCardReader\0010\Reader0",,,

[ACSSVR64.CopySYS]
acm64svr.sys,acm64s98.sys

; ================= ACS Cryptomate 64 Token (W2K and up) ===============

[ACSTOK64.AddReg.NT]
HKR,,AdapterType, 0, "0100"
HKR,,"VendorName",0,%Vendor%
HKR,,"IFDName",0,%Reader64%
HKR,,"CardType",0,%CardType%
HKR,,"SFDT",0,%SFDT%
HKR,,"CardVoltage",0,%CardVoltage%
HKLM,"System\CurrentControlSet\Services\SCardSvr","Start", 0x00010001,2
HKLM,"System\CurrentControlSet\Services\CertPropSvc","Start", 0x00010001,2

[ACSTOK64.CopySYS.NTx86]
acm64tok.sys
acm64svr.sys

[ACSTOK64.CopySYS.NTamd64]
acm64tok.sys,acm64tokx64.sys
acm64svr.sys,acm64svrx64.sys

[ACSTOK64.NTx86.Services]
AddService = ACSCMTOK64, 2, ACSTOK64.Service, ACSTOK64.EventLog

[ACSTOK64.NTamd64.Services]
AddService = ACSCMTOK64, 2, ACSTOK64.Service, ACSTOK64.EventLog

[ACSTOK64.Service]
DisplayName     = %ACSTOK64.DeviceDesc%
ServiceType     = 1 ;%SERVICE_KERNEL_DRIVER%
StartType       = 3 ;%SERVICE_DEMAND_START%
ErrorControl    = 1 ;%SERVICE_ERROR_NORMAL%
ServiceBinary   = %12%\acm64tok.sys

[ACSTOK64.EventLog]
AddReg = ACSTOK64.AddEventLog.reg

[ACSTOK64.AddEventLog.reg]
HKR,, EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\drivers\acm64tok.sys"
HKR,, TypesSupported,   0x00010001, 7

[ACSTOK64.NTx86.CoInstallers]
CopyFiles       = CoInstaller64.CopyDLL.NTx86
AddReg          = CoInstaller64.AddReg

[ACSTOK64.NTamd64.CoInstallers]
CopyFiles       = CoInstaller64.CopyDLL.NTamd64
AddReg          = CoInstaller64.AddReg

[CoInstaller64.CopyDLL.NTx86]
acscm64.dll

[CoInstaller64.CopyDLL.NTamd64]
acscm64.dll,acscm64x64.dll

[CoInstaller64.AddReg]
HKR,,CoInstallers32,0x10000,"acscm64.dll,ACSCMServerCoInstaller"

; ================= ACS Cryptomate 64 Server (W2K and up) ===============

[ACSSVR64.AddReg.NT]
HKR,, AdapterType, 0, "0100"
HKR,,"VendorName",0,%Vendor%
HKR,,"IFDName",0,%Reader64%
HKR,,"CardType",0,%CardType%
HKR,,"SFDT",0,%SFDT%
HKR,,"CardVoltage",0,%CardVoltage%
HKLM,"System\CurrentControlSet\Services\SCardSvr","Start", 0x00010001,2

[ACSSVR64.CopySYS.NTx86]
acm64svr.sys

[ACSSVR64.CopySYS.NTamd64]
acm64svr.sys,acm64svrx64.sys

[ACSSVR64.NTx86.Services]
AddService = ACSCMSVR64, 2, ACSSVR64.Service, ACSSVR64.EventLog

[ACSSVR64.NTamd64.Services]
AddService = ACSCMSVR64, 2, ACSSVR64.Service, ACSSVR64.EventLog

[ACSSVR64.Service]
DisplayName     = %ACSSVR64.DeviceDesc%
ServiceType     = 1 ;%SERVICE_KERNEL_DRIVER%
StartType       = 3 ;%SERVICE_DEMAND_START%
ErrorControl    = 1 ;%SERVICE_ERROR_NORMAL%
ServiceBinary   = %12%\acm64svr.sys

[ACSSVR64.EventLog]
AddReg = ACSSVR64.AddEventLog.reg

[ACSSVR64.AddEventLog.reg]
HKR,, EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\drivers\acm64svr.sys"
HKR,, TypesSupported,   0x00010001, 7

; ================= Strings =====================

[Strings]
SourceDiskName		= "ACS CryptoMate Driver Installation Disk"
ACS			= "Advanced Card Systems Ltd"
ACSTOK.DeviceDesc	= "ACS CryptoMate"
ACSSVR.DeviceDesc	= "ACS CryptoMate Virtual Reader"
ACSTOK64.DeviceDesc	= "ACS CryptoMate64"
ACSSVR64.DeviceDesc	= "ACS CryptoMate64 Virtual Reader"
ClassName 		= "Smart Card Readers"
Vendor			= "ACS"
Reader			= "CryptoMate"
Reader64			= "CryptoMate64"
CardType		= 0		;see below for detail
SFDT			= "TRUE"
CardVoltage		= 0		;see below for detail

; ================= Card Types ==================
;  0: MCU
;  1: IIC (Auto Detect Memory Size)
;  2: IIC (1K)
;  3: IIC (2K)
;  4: IIC (4K)
;  5: IIC (8K)
;  6: IIC (16K)
;  7: IIC (32K)
;  8: IIC (64K)
;  9: IIC (128K)
; 10: IIC (256K)
; 11: IIC (512K)
; 12: IIC (1024K)
; 13: AT88SC153
; 14: AT88SC1608
; 15: SLE4418
; 16: SLE4428
; 17: SLE4432
; 18: SLE4442
; 19: SLE4406
; 20: SLE4436
; 21: SLE5536
; 22: MCUT0
; 23: MCUT1
; 24: Auto Detection

; ================= Card Voltage =================
; 0: Auto Detection
; 1: 5-V Card
; 2: 3-V Card
; 3: 1.8-V Card