]> xenbits.xensource.com Git - pvdrivers/win/xenbus.git/commitdiff
Remove CoInstaller from INF
authorOwen Smith <owen.smith@cloud.com>
Wed, 13 Sep 2023 13:45:17 +0000 (14:45 +0100)
committerPaul Durrant <pdurrant@amazon.com>
Thu, 28 Sep 2023 15:26:48 +0000 (16:26 +0100)
Windows 11 22H2 WHQL requires INF files pass "InfVerif /k", which highlights
several issues
- PnpLockdown=1 needs to be specified
- CoInstallers are no longer allowed

The CoInstaller has several functions that will need alternative solutions:
- The AllowUpdate mechanism is no longer possible
- The ability to block upgrades from installing on a different vendor's drivers
- The safety checks that ensure interface versionings remain compatible
- The cleanup of xenbus_monitor on uninstall.

Interface safety checks need to be handled by changes to child device bindings,
and assuming upgrade via emulated devices is safe. The unplug keys are cleared
in the INF to revert to emulated on the next boot, incase the current child
drivers rely on an interface that is no longer present (note: in this case,
child drivers will need updating).

Signed-off-by: Owen Smith <owen.smith@cloud.com>
src/xenbus.inf

index 59eab7b92d3090645158e8b37fa3cbd8d025bd09..bfe002511264cb7512208be86ad225a9f487d75c 100644 (file)
@@ -37,10 +37,10 @@ Provider=%Vendor%
 CatalogFile=xenbus.cat
 DriverVer=@INF_DATE@,@MAJOR_VERSION@.@MINOR_VERSION@.@MICRO_VERSION@.@BUILD_NUMBER@
 DriverPackageDisplayName=%DiskDesc%
+PnpLockdown=1
 
 [DestinationDirs] 
 DefaultDestDir=12 
-CoInst_CopyFiles=11
 Monitor_CopyFiles=11
 
 [SourceDisksNames]
@@ -50,7 +50,6 @@ Monitor_CopyFiles=11
 xen.sys=0,,
 xenbus.sys=0,,
 xenfilt.sys=0,,
-xenbus_coinst.dll=0,,
 xenbus_monitor.exe=0,,
 xenbus_monitor.dll=0,,
 
@@ -59,9 +58,6 @@ xen.sys
 xenbus.sys
 xenfilt.sys
 
-[CoInst_CopyFiles]
-xenbus_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenbus_coinst.dll
-
 [Monitor_CopyFiles]
 xenbus_monitor_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.exe,xenbus_monitor.exe
 xenbus_monitor_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenbus_monitor.dll
@@ -107,6 +103,10 @@ HKR,"Interrupt Management\MessageSignaledInterruptProperties",,0x00000010
 HKR,"Interrupt Management\MessageSignaledInterruptProperties","MSISupported",0x00010001,1
 HKR,"Interrupt Management\GroupPolicy",,0x00010001,1
 
+[XenBus_Unplug]
+HKLM,%UnplugKey%,"NICS",0x00010001,0
+HKLM,%UnplugKey%,"DISKS",0x00010001,0
+
 [XenFilt_Service] 
 DisplayName=%XenFiltName%
 ServiceType=%SERVICE_KERNEL_DRIVER% 
@@ -144,13 +144,6 @@ AddReg=Monitor_EventLog_AddReg
 HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\xenbus_monitor_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll"
 HKR,,TypesSupported,0x00010001,7
 
-[XenBus_Inst.CoInstallers]
-CopyFiles=CoInst_CopyFiles
-AddReg=CoInst_AddReg
-
-[CoInst_AddReg]
-HKR,,CoInstallers32,0x00010000,"xenbus_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,Entry"
-
 [Strings] 
 
 Vendor="@VENDOR_NAME@" 
@@ -160,6 +153,7 @@ XenFiltName="@PRODUCT_NAME@ Generic Bus Filter"
 MonitorName="@PRODUCT_NAME@ PV Driver Monitor"
 MonitorDesc="Provides support for @PRODUCT_NAME@ PV drivers"
 RequestKey="SYSTEM\CurrentControlSet\Services\xenbus_monitor\Request"
+UnplugKey="SYSTEM\CurrentControlSet\Services\XEN\Unplug"
 DialogTitle="@PRODUCT_NAME@"
 DialogText="needs to restart the system to complete installation."
 DialogQuestion="Press 'Yes' to restart the system now or 'No' if you plan to restart the system later."