Changeset 107362 in vbox for trunk/src/VBox/Main
- Timestamp:
- Dec 18, 2024 3:40:40 PM (5 weeks ago)
- Location:
- trunk/src/VBox/Main
- Files:
-
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
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.