UI framework and installer for App with Windows Kernel Driver

Mortensen, Christian 1 Reputation point
2021-07-06T09:25:46.787+00:00

Hi,

I am working in a group where we are going to develop a new Windows application and we want some guidance on which frameworks and technologies to use.

On a high-level, the application has the following components:

Our first choice is deciding between using an MSI or an MSIX installer for our application. As far as I can tell, MSIX does not support installing Windows kernel drivers. It seems like kernel drivers are installed with the same Win32 API as services are (https://learn.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-createservicea). But it also seems that even though MSIX recently got support for installing services it does not support installing kernel drivers (https://learn.microsoft.com/en-us/windows/msix/packaging-tool/convert-an-installer-with-services). So:

Question 1: For an application that includes a Windows kernel driver, is it true that MSIX is not supported and hence MSI is the recommended installation method?

The next choice is deciding which UI framework to use for the UI App. I have found these offerings from Microsoft:

  • MFC (C++ only)
  • WinForms
  • WPF (Windows Presentation Foundation)
  • WinUI 2
  • WinUI 3
  • Xamarin.Forms
  • MAUI

I am not 100% sure, but by online searching it seems that except for MFC, WinForms and WPF, these frameworks are only supported with MSIX installers. This leaves us with the choice between MFC, WinForms and WPF. Since WPF is newest, I assume that is probably better. So:

Question 2: For an application that includes a Windows kernel driver, is it it true that the only Microsoft supported UI frameworks we can use are MFC, WinForms and WPF? And that for a new project WPF is probably to prefer?

And finally:

Question 3: Maybe a solution is to go with an MSIX installer and then let our UI or our service install the kernel driver? If this is possible, what about uinstallation of the kernel driver when our application is uninstalled?

Thanks,

Christian

Windows API - Win32
Windows API - Win32
A core set of Windows application programming interfaces (APIs) for desktop and server applications. Previously known as Win32 API.
2,416 questions
0 comments No comments
{count} votes