;
; Copyright (c) Microsoft Corporation, All Rights Reserved
;
; TPM.INF  -- This file contains descriptions of the general purpose
;             TPM driver
;

[Version]
Signature   = "$WINDOWS NT$"
Class       = SecurityDevices
ClassGuid   = {d94ee5d8-d189-4994-83d2-f68d7d41b0e6}
Provider    = %MSFT%
PnpLockdown = 1
DriverVer = 06/21/2006,10.0.22621.3672

[ControlFlags]
ExcludeFromSelect=*PNP0C31,ACPI\PNP0C31,ACPI\BCM0101,ACPI\BCM0102,*MSFT0101,ACPI\MSFT0101,*FTPM0101,ACPI\FTPM0101

[SourceDisksNames]
3426=windows cd

[SourceDisksFiles]
tpm.sys = 3426

[DestinationDirs]
TpmInstall.CopyFiles = 12        ; DIRID_DRIVERS

;=========================================================================

[Manufacturer]
%STD%=Standard,NTamd64
%BROADCOM%=Broadcom,NTamd64
%XCG%=ftpmSimBase,NTamd64
%STD%=Tpm2Base,NTamd64

[Standard.NTamd64]
%STD_DESC%=TpmInstall,ACPI\PNP0C31
%STD_DESC%=TpmInstall,*PNP0C31

[Broadcom.NTamd64]
%BROADCOM_DESC1%=BroadcomA1Install,ACPI\BCM0101
%STD_DESC%=BroadcomA2Install,ACPI\BCM0102

[ftpmSimBase.NTamd64]
%XCG_DESC%=ftpmSimBaseInstall,ACPI\FTPM0101
%XCG_DESC%=ftpmSimBaseInstall,*FTPM0101

[Tpm2Base.NTamd64]
%TPM2_DESC%=Tpm2BaseInstall,ACPI\MSFT0101
%TPM2_DESC%=Tpm2BaseInstall,*MSFT0101
%TPM2_DESC%=Tpm2BaseInstall,{36DEAA79-C5DD-447C-95E6-B3859589291A}\TrEETPM
%TPM2_DESC%=Tpm2BaseInstall,{1F75CF6D-F709-4C0C-8BCB-0CDCA1289DDD}\TrEETPM

;=========================================================================
; Standard TPM section

[TpmInstall]
CopyFiles=TpmInstall.CopyFiles

[TpmInstall.CopyFiles]
tpm.sys,,,0x100

[TpmInstall.HW]
AddReg=TpmInstall.AddReg
AddReg=Tpm12.AddReg

[TpmInstall.AddReg]
;
; TPM device should only be accessible by the authenticated user, and all appcontainers 
; and LPAC Apps with CAPABILITY_SID_SHARED_USER_CERTIFICATES(S-1-15-3-9) capability
;
HKR,,Security,,"D:P(A;;GA;;;AU)(A;;GA;;;S-1-15-2-1)(A;;GA;;;S-1-15-3-9)"

[Tpm12.AddReg]
; This device is a 1.2 device
HKR,,"HardwareType",0x00010001,12


[TpmInstall.Services]
; SPSVCINST_ASSOCSERVICE=0x0002
AddService=TPM,0x0002,TpmInstall.AddService,TpmInstall.AddService.EventLog

[TpmInstall.AddService]
ServiceType=1  ; SERVICE_KERNEL_DRIVER
StartType=3    ; DEMAND START
LoadOrderGroup=Boot Bus Extender; Earliest possible group
ErrorControl=1 ; SERVICE_ERROR_NORMAL
ServiceBinary=%12%\tpm.sys
DisplayName=%TPM%
Description=%TPMDesc%
AddReg=TpmInstall.AddService.AddReg
AddReg=TpmKsr.AddReg

[TpmInstall.AddService.AddReg]
;
; Early boot
;
HKR,,BootFlags,0x00010003,0x20 ; CM_SERVICE_MEASURED_BOOT_LOAD

[TpmKsr.AddReg]
HKR, Parameters, KsrGuid, 0, {F141DC89-3D00-450A-B2D2-AD995267F8FC}

[TpmInstall.AddService.EventLog]
AddReg = TpmInstall.AddReg.EventLog

[TpmInstall.AddReg.EventLog]
;
; Do not attempt to install the legacy event registration here. It will get stomped by ETW manifest registration anyway.
;

;=========================================================================
; Broadcom A1 section

; Same files are copied as for other TPM's
[BroadcomA1Install]
CopyFiles=TpmInstall.CopyFiles

[BroadcomA1Install.HW]
AddReg=BroadcomA1.AddReg
AddReg=TpmInstall.AddReg
AddReg=Tpm12.AddReg

[BroadcomA1.AddReg]
;
; Additional entries are DWORD (0x00010001) flags to the driver
HKR,,"SkipInitCommands",0x00010001,1
HKR,,"SkipOverflowCheck",0x00010001,1
HKR,,"SkipUnderflowCheck",0x00010001,1
HKR,,"UsePortBasedIO",0x00010001,1
HKR,,"DelayExpectBitCheck",0x00010001,1

[BroadcomA1Install.Services]
;
; Same as for other TPM's
; SPSVCINST_ASSOCSERVICE=0x0002
AddService=TPM,0x0002,TpmInstall.AddService,TpmInstall.AddService.EventLog

;=========================================================================
; Broadcom A2 section

; Same files are copied as for other TPM's
[BroadcomA2Install]
CopyFiles=TpmInstall.CopyFiles

[BroadcomA2Install.HW]
AddReg=BroadcomA2.AddReg
AddReg=TpmInstall.AddReg
AddReg=Tpm12.AddReg

[BroadcomA2.AddReg]
;
; Additional entries are DWORD (0x00010001) flags to the driver
HKR,,"DelayExpectBitCheck",0x00010001,1

[BroadcomA2Install.Services]
;
; Same as for other TPM's
; SPSVCINST_ASSOCSERVICE=0x0002
AddService=TPM,0x0002,TpmInstall.AddService,TpmInstall.AddService.EventLog

;=========================================================================
; ftpmSimBase section

; Same files are copied as for other TPM's
[ftpmSimBaseInstall]
CopyFiles=TpmInstall.CopyFiles

[ftpmSimBaseInstall.HW]
AddReg=ftpmSimBaseInstall.AddReg
AddReg=TpmInstall.AddReg

[ftpmSimBaseInstall.AddReg]
; This device is for the simulator
HKR,,"HardwareType",0x00010001,19

[ftpmSimBaseInstall.Services]
;
; Same as for other TPM's
; SPSVCINST_ASSOCSERVICE=0x0002
AddService=TPM,0x0002,TpmInstall.AddService,TpmInstall.AddService.EventLog

;=========================================================================
; TPM2 installation

; Same files are copied as for other TPM's
[Tpm2BaseInstall]
CopyFiles=TpmInstall.CopyFiles

[Tpm2BaseInstall.HW]
AddReg=Tpm2BaseInstall.AddReg
AddReg=TpmInstall.AddReg

[Tpm2BaseInstall.AddReg]
; this device is a 2.0 mem-based interface
HKR,,"HardwareType",0x00010001,20


[Tpm2BaseInstall.Services]
;
; Same as for other TPM's
; SPSVCINST_ASSOCSERVICE=0x0002
AddService=TPM,0x0002,TpmInstall.AddService,TpmInstall.AddService.EventLog


[Strings]
; localizable strings
MSFT         = "Microsoft"
STD          = "(Standard)"
STD_DESC     = "Trusted Platform Module 1.2"
BROADCOM     = "Broadcom"
BROADCOM_DESC1= "Trusted Platform Module 1.2 (with Port IO)"
ClassName    = "Security Devices"
XCG          = "XCG/MSR"
XCG_DESC     = "Trusted Platform Module 2.0 (Simulator-backed)"
TPM2_DESC    = "Trusted Platform Module 2.0"
TPM          = "TPM"
TPMDesc      = "TPM Driver"

; non-localizable strings
