;/*++ ; ;Copyright (c) 1990-1999 Microsoft Corporation All rights Reserved ; ;Module Name: ; ; pcip.INF ; ;Abstract: ; INF file for installing pci proxy driver ; It can also be invoked from OEM inf ; ;Installation Notes: ; pci proxy driver is for pci device FDO. It is loaded by Pnp if hardware id matchs. ; ;--*/ [Version] Signature="$WINDOWS NT$" Class=SYSTEM ClassGuid={4D36E97D-E325-11CE-BFC1-08002BE10318} Provider=%MSFT% PnpLockdown=1 DriverVer = 06/21/2006,10.0.26100.8521 [DestinationDirs] DefaultDestDir = 12 [SourceDisksNames] 1 = %DiskId1%,,,"" [SourceDisksFiles] pcip.sys = 1,, ;***************************************** ; pcip Install Section ;***************************************** [Manufacturer] %StdMfg%=Standard,NTamd64 [Standard.NTamd64] ;Generic %NVMe.DeviceDesc%=dismounted_NVMe_Device, PCIP\CC_0108 %GenericHBA.DeviceDesc%=pcip_Device, PCIP\CC_0104 %GenericHBA.DeviceDesc%=pcip_Device, PCIP\CC_0100 %GenericFC.DeviceDesc%=pcip_Device, PCIP\CC_0C04 %GenericGPU.DeviceDesc%=pcip_Device, PCIP\CC_0300 %GenericGPU.DeviceDesc%=pcip_Device, PCIP\CC_0302 %GenericGPU.DeviceDesc%=pcip_Device, PCIP\CC_0320 %GenericNIC.DeviceDesc%=pcip_Device, PCIP\CC_0200 %GenericAudio.DeviceDesc%=pcip_Device, PCIP\CC_0400 %GenericAudio.DeviceDesc%=pcip_Device, PCIP\CC_0403 %GenericAny.DeviceDesc%=pcip_Device, PCIP\Generic %GenericAny.DeviceDesc%=pcip_Device_Supported.NT ; used by Include/Needs %GenericAny.DeviceDesc%=pcip_Device_Hot_Remove_Safe.NT ; used by Include/Needs [pcip_Device.NT] CopyFiles=Drivers_Dir AddProperty=PropertiesSection [dismounted_NVMe_Device.NT] CopyFiles=Drivers_Dir AddProperty=PropertiesSection [pcip_Device.NT.HW] AddReg=pcip_Device.NT.AddReg ;hardware vendor should use "Include and Needs" for driver package IOV support. Include=pci.inf Needs=PciIoSpaceNotRequired.HW [dismounted_NVMe_Device.NT.HW] AddReg=pcip_Device.NT.AddReg AddReg=Supported_Device.NT.AddReg Include=pci.inf Needs=PciIoSpaceNotRequired.HW [pcip_Device.NT.AddReg] HKR,,DeviceCharacteristics,0x10001,0x0100 ; Use same security checks on relative opens ; Allow generic-all access to Built-in administrators, and Local system, and VM Group HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;S-1-5-83-0)" HKR, Interrupt Management,, 0x00000010 HKR, Interrupt Management\MessageSignaledInterruptProperties,,0x00000010 HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, 0x00010001, 1 HKR, Interrupt Management\MessageSignaledInterruptProperties, MessageNumberLimit, 0x00010001, 0 ; Important: Do enable MSI interrupts on the device, but set the limit to 0. This covers the case when there are no line-based interrupts ; If there are active MSI interrupts, it will associate the device with the root partition in the hypervisor, ; which makes it impossible to assign the device to a VM. [Supported_Device.NT.AddReg] HKR,,SupportedDevice,0x00010001,1 [Hot_Remove_Safe.NT.AddReg] HKR,,HotRemoveSafe,0x00010001,1 [pcip_Device_Supported.NT] [pcip_Device_Hot_Remove_Safe.NT] [pcip_Device.NT.Interfaces] Needs=pcip_Device.Interfaces ;DO NOT REMOVE - pcip_Device.Interfaces is referenced externally using Include/Needs [pcip_Device.Interfaces] ; ; called by needs in a OEM inf ; [pcip_Device_Supported.NT.HW] AddReg=Supported_Device.NT.AddReg [pcip_Device_Hot_Remove_Safe.NT.HW] AddReg=Hot_Remove_Safe.NT.AddReg ; ; called by needs in OEM inf ; [proxy.CopyFiles] CopyFiles = Drivers_Dir [proxy.AddProperty] AddProperty = PropertiesSection [proxy.AddService] AddService=pcip_Device.NT.Services [Drivers_Dir] pcip.sys ; Property section [PropertiesSection] ; To be used for global mitigations (of which there are currently none) ;-------------- Service installation [pcip_Device.NT.Services] AddService = pcip,%SPSVCINST_ASSOCSERVICE%, pcip_Service_Inst, pcip_EventLog_Inst [dismounted_NVMe_Device.NT.Services] AddService = pcip,%SPSVCINST_ASSOCSERVICE%, pcip_Service_Inst, pcip_EventLog_Inst ; -------------- pcip driver install sections [pcip_Service_Inst] DisplayName = %pcip.SVCDESC% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\pcip.sys LoadOrderGroup = Extended Base AddReg = pcip_service_addreg [pcip_service_addreg] HKR,"Parameters","KsrGuid",,"{64223957-4d43-4dbf-bcd4-948d75e444fe}" HKR,Parameters,DmaRemappingCompatible,0x00010001,1 ; -------------- pcip eventlog setup sections [pcip_EventLog_Inst] AddReg = pcip_EventLog_AddReg [pcip_EventLog_AddReg] HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\pcip.sys" HKR,,TypesSupported,0x00010001,7 [Strings] SPSVCINST_ASSOCSERVICE= 0x00000002 MSFT = "Microsoft" StdMfg = "Microsoft" DiskId1 = "PCI Proxy Installation Disk #1" pcip.SVCDESC = "PCI Proxy driver" pcip.DeviceDesc = "PCI Proxy" GenericHBA.DeviceDesc = "PCI Express Host Bus Adapter - Dismounted" GenericFC.DeviceDesc = "PCI Express Fibre Channel Port - Dismounted" GenericGPU.DeviceDesc = "PCI Express Graphics Processing Unit - Dismounted" GenericNIC.DeviceDesc = "PCI Express Ethernet Port - Dismounted" GenericAudio.DeviceDesc = "PCI Express Audio Device - Dismounted" GenericAny.DeviceDesc = "PCI Express Device of unknown type - Dismounted" NVMe.DeviceDesc = "NVM Express Controller - Dismounted"