Changeset 107362 in vbox
- Timestamp:
- Dec 18, 2024 3:40:40 PM (6 weeks ago)
- Location:
- trunk/src/VBox
- Files:
-
- 1 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Installer/win/VBoxMergeApp.wxi
r107361 r107362 119 119 120 120 <?if $(env.VBOX_WITH_MIDL_PROXY_STUB) = "yes" ?> 121 122 <Component Id="cp_ProxyStub" Guid="CDD09BA4-8D87-4383-DCA6-1CCCF9D11091" Bitness="$(var.Property_Bitness)" Condition="(VersionNT >= 601)"> 123 <!-- Only install this proxy stub DLL on Windows 7 and later (OLE32.ObjectStublessClientXX imports). --> 124 121 <Component Id="cp_ProxyStub" Guid="CDD09BA4-8D87-4383-DCA6-1CCCF9D11091" Bitness="$(var.Property_Bitness)"> 125 122 <File Id="file_VBoxProxyStub" Name="VBoxProxyStub.dll" KeyPath="yes" Source="$(env.PATH_OUT)\bin\VBoxProxyStub.dll"> 126 123 <Class Id="$(env.VBOX_MIDL_PROXY_CLSID)" Context="InprocServer32" Description="PSFactoryBuffer" ThreadingModel="both" /> … … 128 125 <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?> 129 126 </Component> 130 131 <?if $(env.KBUILD_TARGET_ARCH) = "amd64" ?>132 <Component Id="cp_ProxyStubLegacy" Guid="97F12055-5B6D-481C-E8CD-F41D8C733280" Bitness="$(var.Property_Bitness)" Condition="(VersionNT < 601)">133 <!-- Only install this proxy stub DLL pre-Windows 7 (AMD64: legacy NDR stuff; Both: No ObjectStublessClientXX). -->134 <File Id="file_VBoxProxyStubLegacy" Name="VBoxProxyStubLegacy.dll" KeyPath="yes" Source="$(env.PATH_OUT)\bin\VBoxProxyStubLegacy.dll">135 <Class Id="$(env.VBOX_MIDL_PROXY_CLSID)" Context="InprocServer32" Description="PSFactoryBuffer" ThreadingModel="both" />136 </File>137 <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?>138 </Component>139 <?endif?>140 141 127 <?endif?> 142 128 -
trunk/src/VBox/Installer/win/VirtualBox.wxs
r107361 r107362 276 276 <?if $(env.VBOX_WITH_MIDL_PROXY_STUB) = "yes" ?> 277 277 <ComponentRef Id="cp_ProxyStub" /> 278 <?if $(env.VBOX_WITH_32_ON_64_MAIN_API) = "yes" ?>279 <ComponentRef Id="cp_ProxyStubLegacy" />280 <?endif?>281 278 <?endif?> 282 279 <?if $(env.VBOX_WITH_DTRACE) = "yes" ?> -
trunk/src/VBox/Main/Makefile.kmk
r107139 r107362 1535 1535 # Experimental COM proxy + stub DLL w/ automatic registration updating. 1536 1536 # 1537 # The Legacy stub is for older 64-bit windows versions (pre Windows 7) as we1538 # were having various problems on windows server 2003 and 2008 with the code1539 # MIDL generated. Also, in windows 7 there are some potentially interesting1540 # changes in the generated code where it uses new helpers from OLE32.1541 #1542 1537 DLLS += VBoxProxyStub 1543 1538 VBoxProxyStub_TEMPLATE = VBoxMainComp … … 1566 1561 src-all/win/VBoxProxyStub.rc_DEPS = $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb 1567 1562 VBoxProxyStub_VirtualBox_p.c_CFLAGS.x86 = /Gz # Workaround for incorrect ObjectStublessClient* prototypes in SDK v7.1. 1568 1569 ifn1of ($(KBUILD_TARGET_ARCH), arm64)1570 DLLS += VBoxProxyStubLegacy1571 VBoxProxyStubLegacy_TEMPLATE = VBoxMainComp1572 VBoxProxyStubLegacy_EXTENDS = VBoxProxyStub1573 VBoxProxyStubLegacy_DEFS = $(VBoxProxyStub_DEFS) VBOX_IN_PROXY_STUB_LEGACY1574 VBoxProxyStubLegacy_INCS = $(VBoxCOM_0_OUTDIR)/legacy/1575 VBoxProxyStubLegacy_SOURCES = \1576 $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_p.c \1577 $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_i.c \1578 src-all/win/VBoxProxyStub.def \1579 src-all/win/VBoxProxyStubLegacy.rc \1580 src-all/win/VBoxProxyStub.c1581 src-all/win/VBoxProxyStubLegacy.rc_DEPS = $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.tlb1582 endif1583 1563 1584 1564 ifdef VBOX_WITH_32_ON_64_MAIN_API … … 1765 1745 1766 1746 if defined(VBOX_WITH_32_ON_64_MAIN_API) && !defined(VBOX_ONLY_EXTPACKS) 1767 # The XP targetted 32-bit proxy stub works with all versions of windows (the 1768 # issues leading to the VBoxProxyStubLegacy.dll are only on 64-bit windows). 1747 # The XP targetted 32-bit proxy stub works with all versions of windows. 1769 1748 $(call KB_FN_AUTO_CMD_DEPS,$(VBoxCOM-x86_0_OUTDIR)/VirtualBox_i.c) 1770 1749 $(VBoxCOM-x86_0_OUTDIR)/VirtualBox_i.c \ -
trunk/src/VBox/Main/glue/initterm.cpp
r106514 r107362 466 466 if (RT_SUCCESS(vrc)) 467 467 # ifndef VBOX_IN_32_ON_64_MAIN_API 468 vrc = RTPathAppend(szPath, sizeof(szPath), 469 RT_MAKE_U64(((PKUSER_SHARED_DATA)MM_SHARED_USER_DATA_VA)->NtMinorVersion, 470 ((PKUSER_SHARED_DATA)MM_SHARED_USER_DATA_VA)->NtMajorVersion) 471 >= RT_MAKE_U64(1/*Lo*/,6/*Hi*/) 472 ? "VBoxProxyStub.dll" : "VBoxProxyStubLegacy.dll"); 468 vrc = RTPathAppend(szPath, sizeof(szPath), "VBoxProxyStub.dll"); 473 469 # else 474 470 vrc = RTPathAppend(szPath, sizeof(szPath), "x86\\VBoxProxyStub-x86.dll"); -
trunk/src/VBox/Main/src-all/win/VBoxProxyStub.c
r107098 r107362 91 91 * Selects the proxy stub DLL based on 32-on-64-bit and host OS version. 92 92 * 93 * The legacy DLL covers 64-bit pre Windows 7 versions of Windows. W2K3-amd64 94 * has trouble parsing the result when MIDL /target NT51 or higher. Vista and 95 * windows server 2008 seems to have trouble with newer IDL compilers. 93 * Note! We used to have a separate version of the 64-bit DLL for pre-win7. 96 94 */ 97 95 #if ARCH_BITS == 64 || defined(VBOX_IN_32_ON_64_MAIN_API) … … 100 98 # define VBPS_PROXY_STUB_FILE(a_fIs32On64) VBPS_PROXY_STUB_FILE_SUB() 101 99 #endif 102 #define VBPS_PROXY_STUB_FILE_SUB() \ 103 ( RT_MAKE_U64(((PKUSER_SHARED_DATA)MM_SHARED_USER_DATA_VA)->NtMinorVersion, \ 104 ((PKUSER_SHARED_DATA)MM_SHARED_USER_DATA_VA)->NtMajorVersion) >= RT_MAKE_U64(1/*Lo*/,6/*Hi*/) \ 105 ? "VBoxProxyStub.dll" : "VBoxProxyStubLegacy.dll" ) 100 #define VBPS_PROXY_STUB_FILE_SUB() "VBoxProxyStub.dll" 106 101 107 102 /** For use with AssertLogRel except a_Expr1 from assertions but not LogRel. */ -
trunk/src/VBox/Main/src-all/win/comregister.cmd
r106061 r107362 113 113 114 114 REM 115 REM Figure out the Windows version as the proxy stub requires 6.0 or later (at least for 64-bit).116 REM117 set WinVer=Version 4.0.1381118 set WinVerMajor=4119 set WinVerMinor=0120 set WinVerBuild=1381121 for /f "tokens=2 delims=[]" %%a in ('ver') do set WinVer=%%a122 for /f "tokens=2,3,4 delims=. " %%a in ("%WinVer%") do (123 set WinVerMajor=%%a124 set WinVerMinor=%%b125 set WinVerBuild=%%c126 )127 REM echo WinVerMajor=%WinVerMajor% WinVerMinor=%WinVerMinor% WinVerBuild=%WinVerBuild% WinVer=%WinVer%128 129 REM130 115 REM Parse arguments. 131 116 REM … … 182 167 REM Unregister all first, then register them. The order matters here. 183 168 :register_amd64 184 if "%WinVerMajor%" == "5" goto register_amd64_legacy185 if not "%WinVerMajor%" == "6" goto register_amd64_not_legacy186 if not "%WinVerMinor%" == "0" goto register_amd64_not_legacy187 :register_amd64_legacy188 set s64BitProxyStub=VBoxProxyStubLegacy.dll189 goto register_amd64_begin190 :register_amd64_not_legacy191 set s64BitProxyStub=VBoxProxyStub.dll192 :register_amd64_begin193 echo s64BitProxyStub=%s64BitProxyStub%194 169 @echo on 195 170 "%_VBOX_DIR%VBoxSVC.exe" /UnregServer … … 197 172 %windir%\system32\regsvr32 /s /u "%_VBOX_DIR%VBoxC.dll" 198 173 %windir%\syswow64\regsvr32 /s /u "%_VBOX_DIR%x86\VBoxClient-x86.dll" 199 %windir%\system32\regsvr32 /s /u "%_VBOX_DIR% %s64BitProxyStub%"174 %windir%\system32\regsvr32 /s /u "%_VBOX_DIR%VBoxProxyStub.dll" 200 175 %windir%\syswow64\regsvr32 /s /u "%_VBOX_DIR%x86\VBoxProxyStub-x86.dll" 201 176 if %fUninstallOnly% == 1 goto end … … 205 180 %windir%\syswow64\regsvr32 /s "%_VBOX_DIR%x86\VBoxClient-x86.dll" 206 181 if %fNoProxy% == 1 goto end 207 if exist "%_VBOX_DIR% %s64BitProxyStub%" %windir%\system32\regsvr32 /s "%_VBOX_DIR%%s64BitProxyStub%"182 if exist "%_VBOX_DIR%VBoxProxyStub.dll" %windir%\system32\regsvr32 /s "%_VBOX_DIR%VBoxProxyStub.dll" 208 183 if exist "%_VBOX_DIR%x86\VBoxProxyStub-x86.dll" %windir%\syswow64\regsvr32 /s "%_VBOX_DIR%x86\VBoxProxyStub-x86.dll" 209 184 @echo off
Note:
See TracChangeset
for help on using the changeset viewer.