[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 0/2] Remove CoInstallers



Windows 11 22H2 WHQL testing has highlighted the need to remove CoInstallers.
The current CoInstaller handle several edge cases that will need replacement
implementations. This patch series for most drivers offers a potential solution
to the removal of CoInstallers and the required changes to avoid upgrade issues.

CoInstallers have several uses currently:
- Adds an upgrade block function with the "AllowUpgrade" value blocking driver
  upgrades when set.
- Correctly cleans up user mode services on uninstall.

The AllowUpgrade function has not been replaced - I have not seen this used in
the current implementations of the drivers.

The interface compatability checks can be replaced with the matching if 
RevisionIDs
in the INF files, so that child devices will only install on parent devices that
expose a matching HardwareID or CompatibleID. This does leave the case where the
new parent driver could drop support for an interface version that is currently 
in
use. This will mandate a further driver upgrade, and should remove the Unplug 
keys
and mandate a reboot where the emulated devices are present, to ensure continued
operation. After this reboot using emulated devices, updates to the child 
devices
should be detected and installed, requiring another reboot to revert to PV 
devices.

I dont have a good replacement for cleaning up user mode services (xenagent) on
device uninstall. This *should* be handled correctly by the PnP manager, but 
failing
to stop either service should not be detremental to the operation of the VM. 
Selecting
the "Delete Drivers" option during uninstall will stop and disable these 
services, not
selecting this option will leave these services running.

Owen Smith (2):
  Remove CoInstaller from INF
  Delete CoInstaller code

 src/coinst/coinst.c                           | 722 ------------------
 src/coinst/xeniface_coinst.def                |  38 -
 src/coinst/xeniface_coinst.rc                 |  58 --
 src/xeniface.inf                              |  19 +-
 vs2015/package/package.vcxproj                |   3 -
 vs2015/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  62 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 vs2017/package/package.vcxproj                |   3 -
 vs2017/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  62 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 vs2019/package/package.vcxproj                |   3 -
 vs2019/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  68 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 vs2022/package/package.vcxproj                |   3 -
 vs2022/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  68 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 20 files changed, 4 insertions(+), 1257 deletions(-)
 delete mode 100644 src/coinst/coinst.c
 delete mode 100644 src/coinst/xeniface_coinst.def
 delete mode 100644 src/coinst/xeniface_coinst.rc
 delete mode 100644 vs2015/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2015/xeniface_coinst/xeniface_coinst.vcxproj.user
 delete mode 100644 vs2017/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2017/xeniface_coinst/xeniface_coinst.vcxproj.user
 delete mode 100644 vs2019/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2019/xeniface_coinst/xeniface_coinst.vcxproj.user
 delete mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user

-- 
2.41.0.windows.3




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.