wintun/installer
Simon Rozman 6d6e219080 Reschedule EvaluateWintun between InstallInitialize and InstallFinalize
WireGuard is always doing so-called "minor" upgrade. This makes it
enough to run EvaluateWintun only once - somewhere after CostFinalize.
The component state we bind our driver install/remove logic to will be a
singleton: either be installed,  left alone, or uninstalled. One single
action for install product session and RemoveExistingProducts session.

Other applications using Wintun might use the so-called "major" upgrade.
In this scenario the existing product is completely uninstalled first.
Including Wintun. The EvaluateWintun was called only once and it
determined that Wintun driver should be uninstalled. Since the MSI did
not execute EvaluateWintun again when installing the new product later,
the Wintun remained uninstalled.

In the case of major upgrades, the Wintun requires two separate action
logics: what to do with Wintun on uninstall of the old product, and what
to do with it when new product is installed.

Therefore, EvaluateWintun has been moved between InstallInitialize and
InstallFinalize to have MSI execute it in install and uninstall
sessions.

Reported-by: Dmitry Smirnov <dmitry.smirnov@netprotect.com>
Tested-by: Simon Rozman <simon@rozman.si>
Signed-off-by: Simon Rozman <simon@rozman.si>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-02-29 19:39:11 +08:00
..
exports.def Rewrite installer logic in C 2019-08-02 09:43:32 +00:00
installation.c installer: improve resource freeing flow 2019-10-04 08:52:58 +00:00
installation.h Rewrite installer logic in C 2019-08-02 09:43:32 +00:00
installer.vcxproj Stop timestamping test-signed binaries 2019-09-02 10:10:03 +02:00
installer.vcxproj.filters Use WiX directly rather than via WiX's MSBuild 2019-08-05 17:14:27 +02:00
installer.wxs Reschedule EvaluateWintun between InstallInitialize and InstallFinalize 2020-02-29 19:39:11 +08:00
msi.c Rewrite installer logic in C 2019-08-02 09:43:32 +00:00
resources.rc Rewrite installer logic in C 2019-08-02 09:43:32 +00:00
rundll32.c installer: improve resource freeing flow 2019-10-04 08:52:58 +00:00