Index: trunk/src/VBox/Installer/win/Makefile.kmk
===================================================================
--- trunk/src/VBox/Installer/win/Makefile.kmk	(revision 106984)
+++ trunk/src/VBox/Installer/win/Makefile.kmk	(revision 106986)
@@ -524,4 +524,7 @@
 	-E 'VBOX_WITH_PYTHON=$(if $(VBOX_WITH_PYTHON),yes,no)' \
 	-E 'VBOX_WITH_QTGUI=$(if $(VBOX_WITH_QTGUI),yes,no)' \
+	-E 'VBOX_WITH_ORACLE_QT=$(if $(VBOX_WITH_ORACLE_QT),yes,no)' \
+	-E 'VBOX_WITH_R0_MODULES=$(if $(VBOX_WITH_R0_MODULES),yes,no)' \
+	-E 'VBOX_WITH_MINIMAL_R0=$(if $(VBOX_WITH_MINIMAL_R0),yes,no)' \
 	-E 'VBOX_WITH_RAW_MODE=$(if $(VBOX_WITH_RAW_MODE),yes,no)' \
 	-E 'VBOX_WITH_SERIALNUMBER_INSTALL=$(if $(VBOX_WITH_SERIALNUMBER_INSTALL),yes,no)' \
@@ -719,4 +722,5 @@
  			$(VBOX_WIN_INST_REPACK_DIR)/ $(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/ )
 	$(QUIET)$(RM) -f -- "$$@"  "$(VBOX_WIN_INST_OUT_DIR)/VirtualBox_$(lang).wixlib" "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wixlib"
+## @todo r=bird: Wtf do we duplicate most/all of VBOX_WIN_INST_ENV here?
 	$(REDIRECT) \
 		-E 'PATH_OUT=$(subst /,\,$(PATH_OUT))' \
@@ -774,4 +778,7 @@
 		-E 'VBOX_WITH_PYTHON=$(if $(VBOX_WITH_PYTHON),yes,no)' \
 		-E 'VBOX_WITH_QTGUI=$(if $(VBOX_WITH_QTGUI),yes,no)' \
+		-E 'VBOX_WITH_ORACLE_QT=$(if $(VBOX_WITH_ORACLE_QT),yes,no)' \
+		-E 'VBOX_WITH_R0_MODULES=$(if $(VBOX_WITH_R0_MODULES),yes,no)' \
+		-E 'VBOX_WITH_MINIMAL_R0=$(if $(VBOX_WITH_MINIMAL_R0),yes,no)' \
 		-E 'VBOX_WITH_RAW_MODE=$(if $(VBOX_WITH_RAW_MODE),yes,no)' \
 		-E 'VBOX_WITH_SERIALNUMBER_INSTALL=$(if $(VBOX_WITH_SERIALNUMBER_INSTALL),yes,no)' \
@@ -836,4 +843,5 @@
  		| $$$$(dir $$$$@) $(VBOX_WIN_INST_REPACK_DIR)/
 	$(QUIET)$(RM) -f -- "$$@" "$(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wix" "$(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).wix"
+## @todo r=bird: Wtf do we duplicate most/all of VBOX_WIN_INST_ENV here?  This stuff is surely out of sync.
 	$(REDIRECT) \
 		-E 'PATH_OUT=$(subst /,\,$(PATH_OUT))' \
Index: trunk/src/VBox/Installer/win/VBoxMergeApp.wxi
===================================================================
--- trunk/src/VBox/Installer/win/VBoxMergeApp.wxi	(revision 106984)
+++ trunk/src/VBox/Installer/win/VBoxMergeApp.wxi	(revision 106986)
@@ -49,8 +49,10 @@
     <Directory Id="dir_VBoxAppDrivers" Name="drivers">
         <Directory Id="dir_VBoxAppVBoxSup" Name="vboxsup">
-<?if $(env.VBOX_SIGNING_MODE) != none ?>
+<?if $(env.VBOX_SIGNING_MODE) != "none" ?>
+ <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
             <Component Id="cp_VBoxSupCat_PreW10" Guid="673195c2-f315-42e7-ff00-5acbd91ea0bd" Bitness="$(var.Property_Bitness)" Condition="(NOT VBOX_IS_WINDOWS_10)">
                 <File Id="file_VBoxSup_PreW10.cat" Name="VBoxSup.cat" Source="$(env.PATH_OUT)\bin\VBoxSup-PreW10.cat" />
             </Component>
+ <?endif?>
             <Component Id="cp_VBoxSupCat_W10" Guid="589be90d-0286-4684-503d-a1681f9587bc" Bitness="$(var.Property_Bitness)" Condition="(VBOX_IS_WINDOWS_10)">
                 <File Id="file_VBoxSup.cat" Name="VBoxSup.cat" Source="$(env.PATH_OUT)\bin\VBoxSup.cat" />
@@ -127,7 +129,7 @@
     </Component>
 
+    <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
     <Component Id="cp_ProxyStubLegacy" Guid="97F12055-5B6D-481C-E8CD-F41D8C733280" Bitness="$(var.Property_Bitness)" Condition="(VersionNT &lt; 601)">
         <!-- Only install this proxy stub DLL pre-Windows 7 (AMD64: legacy NDR stuff; Both: No ObjectStublessClientXX). -->
-
         <File Id="file_VBoxProxyStubLegacy" Name="VBoxProxyStubLegacy.dll" KeyPath="yes" Source="$(env.PATH_OUT)\bin\VBoxProxyStubLegacy.dll">
             <Class Id="$(env.VBOX_MIDL_PROXY_CLSID)" Context="InprocServer32" Description="PSFactoryBuffer" ThreadingModel="both" />
@@ -135,4 +137,5 @@
         <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?>
     </Component>
+    <?endif?>
 
 <?endif?>
@@ -243,5 +246,7 @@
         <File Id="file_VBoxDDU.dll" Name="VBoxDDU.dll" Source="$(env.PATH_OUT)\bin\VBoxDDU.dll" />
         <File Id="file_VBoxRT.dll" Name="VBoxRT.dll" Source="$(env.PATH_OUT)\bin\VBoxRT.dll" />
+<?if $(env.VBOX_WITH_HARDENING) = "yes" ?>
         <File Id="file_VBoxSupLib.dll" Name="VBoxSupLib.dll" Source="$(env.PATH_OUT)\bin\VBoxSupLib.dll" />
+<?endif?>
         <File Id="file_VBoxVMM.dll" Name="VBoxVMM.dll" Source="$(env.PATH_OUT)\bin\VBoxVMM.dll" />
 <?if $(env.VBOX_WITH_LIBSSH) = "yes" ?>
@@ -276,7 +281,10 @@
         <File Id="file_VBoxDDRC.rc" Name="VBoxDDRC.rc" Source="$(env.PATH_OUT)\bin\VBoxDDRC.rc" />
 <?endif?>
-
+<?if $(env.VBOX_WITH_R0_MODULES) = "yes" ?>
         <File Id="file_VMMR0.r0" Name="VMMR0.r0" Source="$(env.PATH_OUT)\bin\VMMR0.r0" />
+    <?if $(env.VBOX_WITH_MINIMAL_R0) = "no" ?>
         <File Id="file_VBoxDDR0.r0" Name="VBoxDDR0.r0" Source="$(env.PATH_OUT)\bin\VBoxDDR0.r0" />
+    <?endif?>
+<?endif?>
 
 <?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
@@ -288,8 +296,9 @@
         <File Id="file_UICommon.dll" Name="UICommon.dll" Source="$(env.PATH_OUT)\bin\UICommon.dll">
         </File>
-        <?if $(env.VBOX_WITH_HARDENING) = "yes" ?>
-            <File Id="file_VirtualBoxVM.dll" Name="VirtualBoxVM.dll" Source="$(env.PATH_OUT)\bin\VirtualBoxVM.dll">
-            </File>
-        <?endif?>
+    <?if $(env.VBOX_WITH_HARDENING) = "yes" ?>
+        <File Id="file_VirtualBoxVM.dll" Name="VirtualBoxVM.dll" Source="$(env.PATH_OUT)\bin\VirtualBoxVM.dll">
+        </File>
+    <?endif?>
+    <?if $(env.VBOX_WITH_ORACLE_QT) = "yes" ?>
         <File Id="file_Qt6Core$(var.VBOX_QT_INFIX).dll" Name="Qt6Core$(var.VBOX_QT_INFIX).dll" Source="$(env.PATH_OUT)\bin\Qt6Core$(var.VBOX_QT_INFIX).dll" />
         <File Id="file_Qt6Gui$(var.VBOX_QT_INFIX).dll" Name="Qt6Gui$(var.VBOX_QT_INFIX).dll" Source="$(env.PATH_OUT)\bin\Qt6Gui$(var.VBOX_QT_INFIX).dll" />
@@ -298,5 +307,7 @@
         <File Id="file_Qt6StateMachine$(var.VBOX_QT_INFIX).dll" Name="Qt6StateMachine$(var.VBOX_QT_INFIX).dll" Source="$(env.PATH_OUT)\bin\Qt6StateMachine$(var.VBOX_QT_INFIX).dll" />
         <File Id="file_Qt6Help$(var.VBOX_QT_INFIX).dll" Name="Qt6Help$(var.VBOX_QT_INFIX).dll" Source="$(env.PATH_OUT)\bin\Qt6Help$(var.VBOX_QT_INFIX).dll" />
+        <!-- @todo r=bird: why file_vSql* and not file_Qt6Sql* like the 6 files above? -->
         <File Id="file_vSql$(var.VBOX_QT_INFIX).dll" Name="Qt6Sql$(var.VBOX_QT_INFIX).dll" Source="$(env.PATH_OUT)\bin\Qt6Sql$(var.VBOX_QT_INFIX).dll" />
+    <?endif?>
         <File Id="file_VirtualBox.VisualElementsManifest.xml" Name="VirtualBox.VisualElementsManifest.xml" Source="$(env.PATH_OUT)\bin\VirtualBox.VisualElementsManifest.xml" />
         <File Id="file_VirtualBox_70px.png" Name="VirtualBox_70px.png" Source="$(env.PATH_OUT)\bin\VirtualBox_70px.png" />
@@ -317,4 +328,8 @@
         <File Id="file_VBoxEFI32.fd" Name="VBoxEFI32.fd" DiskId="$(var.Property_DiskIdCommon)" Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" />
         <File Id="file_VBoxEFI64.fd" Name="VBoxEFI64.fd" DiskId="$(var.Property_DiskIdCommon)" Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" />
+    <?if $(env.KBUILD_TARGET_ARCH) = "arm64" ?>
+        <File Id="file_VBoxEFIAArch32.fd" Name="VBoxEFIAArch32.fd" DiskId="$(var.Property_DiskIdCommon)" Source="$(env.PATH_OUT)\bin\VBoxEFIAArch32.fd" />
+        <File Id="file_VBoxEFIAArch64.fd" Name="VBoxEFIAArch64.fd" DiskId="$(var.Property_DiskIdCommon)" Source="$(env.PATH_OUT)\bin\VBoxEFIAArch64.fd" />
+    <?endif?>
 <?endif?>
         <!-- VBox guest additions -->
@@ -331,5 +346,5 @@
     </Component> <!-- MainBinaries -->
 
-<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
+<?if $(env.VBOX_WITH_QTGUI) = "yes" And $(env.VBOX_WITH_ORACLE_QT) = "yes" ?>
     <!-- Qt platforms plugins -->
     <Directory Id="dir_VBoxAppPlatforms" Name="platforms">
Index: trunk/src/VBox/Installer/win/VBoxMergeNetAdp6.wxi
===================================================================
--- trunk/src/VBox/Installer/win/VBoxMergeNetAdp6.wxi	(revision 106984)
+++ trunk/src/VBox/Installer/win/VBoxMergeNetAdp6.wxi	(revision 106986)
@@ -26,9 +26,11 @@
 <Include xmlns="http://wixtoolset.org/schemas/v4/wxs">
 
-<?if $(env.VBOX_SIGNING_MODE) != none ?>
-    <Component Id="cp_NetAdp6DriverCat_PreW10" Guid="40aab6d8-a9ca-41bd-3c5e-bd768d44faa7" Bitness="$(var.Property_Bitness)" Condition="(NETWORKTYPE=&quot;NDIS6&quot;) AND (NOT VBOX_IS_WINDOWS_10)">
-        <!-- Note: ShortName is required to avoid naming collisions the the MSI file table. -->
-        <File Id="file_VBoxNetAdp6_PreW10.cat" ShortName="NetAdp61.cat" Name="VBoxNetAdp6.cat" Source="$(env.PATH_OUT)\bin\VBoxNetAdp6-PreW10.cat" />
-    </Component>
+<?if $(env.VBOX_SIGNING_MODE) != "none" ?>
+    <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
+        <Component Id="cp_NetAdp6DriverCat_PreW10" Guid="40aab6d8-a9ca-41bd-3c5e-bd768d44faa7" Bitness="$(var.Property_Bitness)" Condition="(NETWORKTYPE=&quot;NDIS6&quot;) AND (NOT VBOX_IS_WINDOWS_10)">
+            <!-- Note: ShortName is required to avoid naming collisions the the MSI file table. -->
+            <File Id="file_VBoxNetAdp6_PreW10.cat" ShortName="NetAdp61.cat" Name="VBoxNetAdp6.cat" Source="$(env.PATH_OUT)\bin\VBoxNetAdp6-PreW10.cat" />
+        </Component>
+    <?endif?>
     <Component Id="cp_NetAdp6DriverCat_W10" Guid="37431619-c0ac-4f6a-029e-6a8ac4cd58ad" Bitness="$(var.Property_Bitness)" Condition="(NETWORKTYPE=&quot;NDIS6&quot;) AND (VBOX_IS_WINDOWS_10)">
         <!-- Note: ShortName is required to avoid naming collisions the the MSI file table. -->
Index: trunk/src/VBox/Installer/win/VBoxMergeNetLwf.wxi
===================================================================
--- trunk/src/VBox/Installer/win/VBoxMergeNetLwf.wxi	(revision 106984)
+++ trunk/src/VBox/Installer/win/VBoxMergeNetLwf.wxi	(revision 106986)
@@ -28,14 +28,16 @@
 <?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
 
-<?if $(env.VBOX_SIGNING_MODE) != none ?>
-    <Component Id="cp_NetLwfDriverCat_PreW10" Guid="cede9469-b1bc-4194-348f-8799485a6283" Bitness="$(var.Property_Bitness)" Condition="(NETWORKTYPE=&quot;NDIS6&quot;) AND (NOT VBOX_IS_WINDOWS_10)">
-        <!-- Note: ShortName is required to avoid naming collisions the the MSI file table. -->
-        <File Id="file_VBoxNetLwf_PreW10.cat" ShortName="NetLwf1.cat" Name="VBoxNetLwf.cat" Source="$(env.PATH_OUT)\bin\VBoxNetLwf-PreW10.cat" />
-    </Component>
-    <Component Id="cp_NetLwfDriverCat_W10" Guid="0932500d-4d45-4d79-8693-3192528d7cae" Bitness="$(var.Property_Bitness)" Condition="(NETWORKTYPE=&quot;NDIS6&quot;) AND (VBOX_IS_WINDOWS_10)">
-        <!-- Note: ShortName is required to avoid naming collisions the the MSI file table. -->
-        <File Id="file_VBoxNetLwf_W10.cat" ShortName="NetLwf2.cat" Name="VBoxNetLwf.cat" Source="$(env.PATH_OUT)\bin\VBoxNetLwf.cat" />
-    </Component>
-<?endif?>
+    <?if $(env.VBOX_SIGNING_MODE) != "none" ?>
+        <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
+            <Component Id="cp_NetLwfDriverCat_PreW10" Guid="cede9469-b1bc-4194-348f-8799485a6283" Bitness="$(var.Property_Bitness)" Condition="(NETWORKTYPE=&quot;NDIS6&quot;) AND (NOT VBOX_IS_WINDOWS_10)">
+                <!-- Note: ShortName is required to avoid naming collisions the the MSI file table. -->
+                <File Id="file_VBoxNetLwf_PreW10.cat" ShortName="NetLwf1.cat" Name="VBoxNetLwf.cat" Source="$(env.PATH_OUT)\bin\VBoxNetLwf-PreW10.cat" />
+            </Component>
+        <?endif?>
+        <Component Id="cp_NetLwfDriverCat_W10" Guid="0932500d-4d45-4d79-8693-3192528d7cae" Bitness="$(var.Property_Bitness)" Condition="(NETWORKTYPE=&quot;NDIS6&quot;) AND (VBOX_IS_WINDOWS_10)">
+            <!-- Note: ShortName is required to avoid naming collisions the the MSI file table. -->
+            <File Id="file_VBoxNetLwf_W10.cat" ShortName="NetLwf2.cat" Name="VBoxNetLwf.cat" Source="$(env.PATH_OUT)\bin\VBoxNetLwf.cat" />
+        </Component>
+    <?endif?>
 
     <Component Id="cp_NetLwfDriver" Guid="831b909d-f09a-4281-b6b0-99393fa4769d" Bitness="$(var.Property_Bitness)" Condition="(NETWORKTYPE=&quot;NDIS6&quot;)">
Index: trunk/src/VBox/Installer/win/VBoxMergeUSB.wxi
===================================================================
--- trunk/src/VBox/Installer/win/VBoxMergeUSB.wxi	(revision 106984)
+++ trunk/src/VBox/Installer/win/VBoxMergeUSB.wxi	(revision 106986)
@@ -27,9 +27,11 @@
 
     <Directory Id="dir_VBoxUSBFilter" Name="filter">
-<?if $(env.VBOX_SIGNING_MODE) != none ?>
+<?if $(env.VBOX_SIGNING_MODE) != "none" ?>
+    <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
         <Component Id="cp_USBFilterDriverCat_PreW10" Guid="ef18fb4d-4530-40db-2957-de2dc90243ab" Bitness="$(var.Property_Bitness)" Condition="(NOT VBOX_IS_WINDOWS_10)">
             <!-- Note: ShortName is required to avoid naming collisions the the MSI file table. -->
             <File Id="file_VBoxUSBMon_PreW10.cat" ShortName="UsbMon1.cat" Name="VBoxUSBMon.cat" Source="$(env.PATH_OUT)\bin\VBoxUSBMon-PreW10.cat" />
         </Component>
+    <?endif?>
         <Component Id="cp_USBFilterDriverCat_W10" Guid="341ce4ca-d00e-4a43-f4e3-453eacc6b493" Bitness="$(var.Property_Bitness)" Condition="(VBOX_IS_WINDOWS_10)">
             <!-- Note: ShortName is required to avoid naming collisions the the MSI file table. -->
@@ -44,11 +46,11 @@
 
     <Directory Id="dir_VBoxUSBDevice" Name="device">
-<?if $(env.VBOX_SIGNING_MODE) != none ?>
+<?if $(env.VBOX_SIGNING_MODE) != "none" ?>
+    <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
         <Component Id="cp_USBDeviceDriverCat_PreW10" Guid="43cc14cb-06e9-46c2-d507-20423150ccbd" Bitness="$(var.Property_Bitness)" Condition="(NOT VBOX_IS_WINDOWS_10)">
-
             <File Id="file_VBoxUSB_PreW10.cat" Name="VBoxUSB.cat" Source="$(env.PATH_OUT)\bin\VBoxUSB-PreW10.cat" />
         </Component>
+    <?endif?>
         <Component Id="cp_USBDeviceDriverCat_W10" Guid="2127015e-7a96-4b8d-6015-b1e51a75b5ba" Bitness="$(var.Property_Bitness)" Condition="(VBOX_IS_WINDOWS_10)">
-
             <File Id="file_VBoxUSB_W10.cat" Name="VBoxUSB.cat" Source="$(env.PATH_OUT)\bin\VBoxUSB.cat" />
         </Component>
Index: trunk/src/VBox/Installer/win/VirtualBox.wxs
===================================================================
--- trunk/src/VBox/Installer/win/VirtualBox.wxs	(revision 106984)
+++ trunk/src/VBox/Installer/win/VirtualBox.wxs	(revision 106986)
@@ -37,9 +37,11 @@
         <?define Property_VBoxMergeUSB = "$(env.VBOX_WIN_INST_MERGE_USB)" ?>
     <?endif?>
-    <?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
+    <?if $(env.VBOX_WITH_NETFLT) = "yes" And $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
         <?define Property_VBoxMergeNetworkFlt = "$(env.VBOX_WIN_INST_MERGE_NETFLT)" ?>
     <?endif?>
     <?if $(env.VBOX_WITH_NETADP) = "yes" ?>
-        <?define Property_VBoxMergeNetworkAdp  = "$(env.VBOX_WIN_INST_MERGE_NETADP)" ?>
+        <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
+            <?define Property_VBoxMergeNetworkAdp  = "$(env.VBOX_WIN_INST_MERGE_NETADP)" ?>
+        <?endif?>
         <?define Property_VBoxMergeNetworkAdp6 = "$(env.VBOX_WIN_INST_MERGE_NETADP6)" ?>
     <?endif?>
@@ -238,9 +240,15 @@
     <?endif?>
     <?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
-        <?include VBoxMergeNetFltCA.wxi ?>
+        <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
+            <?include VBoxMergeNetFltCA.wxi ?>
+        <?endif?>
         <?include VBoxMergeNetLwfCA.wxi ?>
     <?endif?>
-    <?include VBoxMergeNetAdpCA.wxi ?>
-    <?include VBoxMergeNetAdp6CA.wxi ?>
+    <?if $(env.VBOX_WITH_NETADP) = "yes" ?>
+        <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
+            <?include VBoxMergeNetAdpCA.wxi ?>
+        <?endif?>
+        <?include VBoxMergeNetAdp6CA.wxi ?>
+    <?endif?>
     <?include VBoxMergeUSBCA.wxi ?>
     <?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
@@ -295,5 +303,7 @@
     <?if $(env.VBOX_WITH_MIDL_PROXY_STUB) = "yes" ?>
         <ComponentRef Id="cp_ProxyStub" />
-        <ComponentRef Id="cp_ProxyStubLegacy" />
+        <?if $(env.VBOX_WITH_32_ON_64_MAIN_API) = "yes" ?>
+            <ComponentRef Id="cp_ProxyStubLegacy" />
+        <?endif?>
     <?endif?>
     <?if $(env.VBOX_WITH_DTRACE) = "yes" ?>
@@ -305,5 +315,5 @@
     <?endif?>
     <ComponentRef Id="cp_MainBinaries" />
-    <?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
+    <?if $(env.VBOX_WITH_QTGUI) = "yes" and $(env.VBOX_WITH_ORACLE_QT) = "yes" ?>
         <ComponentRef Id="cp_QtPlatforms" />
         <ComponentRef Id="cp_QtSqldrivers" />
@@ -324,5 +334,7 @@
     <ComponentRef Id="cp_VBoxCAPI" />
     <?if $(env.VBOX_SIGNING_MODE) != none ?>
-        <ComponentRef Id="cp_VBoxSupCat_PreW10" />
+        <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
+            <ComponentRef Id="cp_VBoxSupCat_PreW10" />
+        <?endif?>
         <ComponentRef Id="cp_VBoxSupCat_W10" />
     <?endif?>
@@ -336,10 +348,14 @@
     <?else?>
         <?if $(env.VBOX_SIGNING_MODE) != none ?>
-            <ComponentRef Id="cp_USBFilterDriverCat_PreW10" />
+            <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
+                <ComponentRef Id="cp_USBFilterDriverCat_PreW10" />
+            <?endif?>
             <ComponentRef Id="cp_USBFilterDriverCat_W10" />
         <?endif?>
             <ComponentRef Id="cp_USBFilterDriver" />
         <?if $(env.VBOX_SIGNING_MODE) != none ?>
-            <ComponentRef Id="cp_USBDeviceDriverCat_PreW10" />
+            <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
+                <ComponentRef Id="cp_USBDeviceDriverCat_PreW10" />
+            <?endif?>
             <ComponentRef Id="cp_USBDeviceDriverCat_W10" />
         <?endif?>
@@ -353,10 +369,16 @@
             <Feature Id="VBoxNetworkFlt" Title="VirtualBox Bridged Networking" Level="1" Description="!(loc.VB_NetFltDriver)" ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" AllowAdvertise="no">
     <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
+        <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
                 <MergeRef Id="msm_VBoxNetworkFlt" />
+        <?endif?>
                 <MergeRef Id="msm_VBoxNetworkLwf" />
     <?else?>
+        <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
                 <ComponentRef Id="cp_NetFltDriver" />
+        <?endif?>
         <?if $(env.VBOX_SIGNING_MODE) != none ?>
+            <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
                 <ComponentRef Id="cp_NetLwfDriverCat_PreW10" />
+            <?endif?>
                 <ComponentRef Id="cp_NetLwfDriverCat_W10" />
         <?endif?>
@@ -366,10 +388,16 @@
             <Feature Id="VBoxNetworkAdp" Title="VirtualBox Host-Only Networking" Level="1" Description="!(loc.VB_NetAdpDriver)" ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" AllowAdvertise="no">
     <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
+        <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
                 <MergeRef Id="msm_VBoxNetworkAdp" />
+        <?endif?>
                 <MergeRef Id="msm_VBoxNetworkAdp6" />
     <?else?>
+        <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
                 <ComponentRef Id="cp_NetAdpDriver" />
+        <?endif?>
         <?if $(env.VBOX_SIGNING_MODE) != none ?>
+            <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>
                 <ComponentRef Id="cp_NetAdp6DriverCat_PreW10" />
+            <?endif?>
                 <ComponentRef Id="cp_NetAdp6DriverCat_W10" />
         <?endif?>
@@ -453,18 +481,24 @@
 
 <?if $(env.VBOX_WITH_MSM_INSTALL) = "no" ?>
-        <?include VBoxMergeAppSeq.wxi ?>
-        <?if $(env.VBOX_WITH_32_ON_64_MAIN_API) = "yes" ?>
-            <?include VBoxMergeCOM32On64Seq.wxi ?>
-        <?endif?>
-        <?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
+    <?include VBoxMergeAppSeq.wxi ?>
+    <?if $(env.VBOX_WITH_32_ON_64_MAIN_API) = "yes" ?>
+        <?include VBoxMergeCOM32On64Seq.wxi ?>
+    <?endif?>
+    <?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
+        <?if $(env.KBUILD_TARGET_ARCH) = amd64 ?> <!-- @todo bird: Remove this and use Adp6, we don't support XP any more. -->
             <?include VBoxMergeNetFltSeq.wxi ?>
-            <?include VBoxMergeNetLwfSeq.wxi ?>
-        <?endif?>
-        <?include VBoxMergeNetAdpSeq.wxi ?>
+        <?endif?>
+        <?include VBoxMergeNetLwfSeq.wxi ?>
+    <?endif?>
+    <?if $(env.VBOX_WITH_NETADP) = "yes" ?>
+        <?if $(env.KBUILD_TARGET_ARCH) = amd64 ?> <!-- @todo bird: Remove this and use Adp6, we don't support XP any more. -->
+            <?include VBoxMergeNetAdpSeq.wxi ?>
+        <?endif?>
         <?include VBoxMergeNetAdp6Seq.wxi ?>
-        <?include VBoxMergeUSBSeq.wxi ?>
-        <?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
-            <?include VBoxMergePythonSeq.wxi ?>
-        <?endif?>
+    <?endif?>
+    <?include VBoxMergeUSBSeq.wxi ?>
+    <?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
+        <?include VBoxMergePythonSeq.wxi ?>
+    <?endif?>
 <?endif?>
 
@@ -526,5 +560,5 @@
 <?endif?>
                     <Directory Id="dir_Network" Name="network">
-<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
+<?if $(env.VBOX_WITH_NETFLT) = "yes" And $(env.KBUILD_TARGET_ARCH) = "amd64" ?> <!-- @todo bird: Remove this and use Adp6, we don't support XP any more. -->
                         <Directory Id="dir_NetFlt" Name="netflt">
     <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
@@ -539,5 +573,5 @@
                         </Directory>
 <?endif?>
-<?if $(env.VBOX_WITH_NETADP) = "yes" ?>
+<?if $(env.VBOX_WITH_NETADP) = "yes" and $(env.KBUILD_TARGET_ARCH) = "amd64" ?> <!-- @todo bird: Remove this and use Adp6, we don't support XP any more. -->
                         <Directory Id="dir_NetAdp" Name="netadp">
     <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
