VirtualBox

Changeset 39513 in vbox


Ignore:
Timestamp:
Dec 2, 2011 12:11:04 PM (13 years ago)
Author:
vboxsync
Message:

Windows Guest Additions installer: Attempt to fix SysWOW64 problems for D3D installation on 64-bit.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Installer/VBoxGuestAdditions.nsi

    r39512 r39513  
    835835
    836836  !if $%BUILD_TARGET_ARCH% == "amd64"
     837    ; We need a special directory set to SysWOW64 because some
     838    ; shell operations don't support file redirection (yet)
     839    Var SYSWOW64DIR
     840    StrCpy SYSWOW64DIR "$WINDIR\SysWOW64"
    837841    ; Only 64-bit installer:
    838842    ; Also copy 32-bit DLLs on 64-bit Windows in SysWOW64 node
    839     ${EnableX64FSRedirection}
    840     SetOutPath $SYSDIR
    841     DetailPrint "Installing Direct3D support (SysWOW64: $SYSDIR) ..."
     843    SetOutPath $SYSWOW64DIR
     844    DetailPrint "Installing Direct3D support (SysWOW64: $SYSWOW64DIR) ..."
    842845    FILE "$%VBOX_PATH_ADDITIONS_WIN_X86%\libWine.dll"
    843846    FILE "$%VBOX_PATH_ADDITIONS_WIN_X86%\VBoxD3D8.dll"
     
    850853
    851854    ; Save original DLLs (only if msd3d*.dll does not exist) ...
    852     SetOutPath "$SYSDIR\dllcache"
    853     IfFileExists "$SYSDIR\dllcache\msd3d8.dll" +2
    854       CopyFiles /SILENT "$SYSDIR\dllcache\d3d8.dll" "$SYSDIR\dllcache\msd3d8.dll"
    855     IfFileExists "$SYSDIR\dllcache\msd3d9.dll" +2
    856       CopyFiles /SILENT "$SYSDIR\dllcache\d3d9.dll" "$SYSDIR\dllcache\msd3d9.dll"
    857 
    858     Push "$SYSDIR\dllcache\d3d8.dll"
     855    SetOutPath "$SYSWOW64DIR\dllcache"
     856    IfFileExists "$SYSWOW64DIR\dllcache\msd3d8.dll" +2
     857      CopyFiles /SILENT "$SYSWOW64DIR\dllcache\d3d8.dll" "$SYSWOW64DIR\dllcache\msd3d8.dll"
     858    IfFileExists "$SYSWOW64DIR\dllcache\msd3d9.dll" +2
     859      CopyFiles /SILENT "$SYSWOW64DIR\dllcache\d3d9.dll" "$SYSWOW64DIR\dllcache\msd3d9.dll"
     860
     861    Push "$SYSWOW64DIR\dllcache\d3d8.dll"
    859862    Call PrepareWRPFile
    860863
    861     Push "$SYSDIR\dllcache\d3d9.dll"
     864    Push "$SYSWOW64DIR\dllcache\d3d9.dll"
    862865    Call PrepareWRPFile
    863866
    864867    ; Exchange DLLs
    865     !insertmacro InstallLib DLL NOTSHARED NOREBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d8.dll" "$SYSDIR\dllcache\d3d8.dll" "$TEMP"
    866     !insertmacro InstallLib DLL NOTSHARED NOREBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d9.dll" "$SYSDIR\dllcache\d3d9.dll" "$TEMP"
     868    !insertmacro InstallLib DLL NOTSHARED NOREBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d8.dll" "$SYSWOW64DIR\dllcache\d3d8.dll" "$TEMP"
     869    !insertmacro InstallLib DLL NOTSHARED NOREBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d9.dll" "$SYSWOW64DIR\dllcache\d3d9.dll" "$TEMP"
    867870
    868871    ; If exchange above failed, do it on reboot
    869     !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d8.dll" "$SYSDIR\dllcache\d3d8.dll" "$TEMP"
    870     !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d9.dll" "$SYSDIR\dllcache\d3d9.dll" "$TEMP"
     872    !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d8.dll" "$SYSWOW64DIR\dllcache\d3d8.dll" "$TEMP"
     873    !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d9.dll" "$SYSWOW64DIR\dllcache\d3d9.dll" "$TEMP"
    871874
    872875    ;
     
    875878
    876879    ; Save original DLLs (only if msd3d*.dll does not exist) ...
    877     SetOutPath $SYSDIR
    878     IfFileExists "$SYSDIR\msd3d8.dll" +2
    879       CopyFiles /SILENT "$SYSDIR\d3d8.dll" "$SYSDIR\msd3d8.dll"
    880     IfFileExists "$SYSDIR\msd3d9.dll" +2
    881       CopyFiles /SILENT "$SYSDIR\d3d9.dll" "$SYSDIR\msd3d9.dll"
    882 
    883     Push "$SYSDIR\d3d8.dll"
     880    IfFileExists "$SYSWOW64DIR\msd3d8.dll" +2
     881      CopyFiles /SILENT "$SYSWOW64DIR\d3d8.dll" "$SYSWOW64DIR\msd3d8.dll"
     882    IfFileExists "$SYSWOW64DIR\msd3d9.dll" +2
     883      CopyFiles /SILENT "$SYSWOW64DIR\d3d9.dll" "$SYSWOW64DIR\msd3d9.dll"
     884
     885    Push "$SYSWOW64DIR\d3d8.dll"
    884886    Call PrepareWRPFile
    885887
    886     Push "$SYSDIR\d3d9.dll"
     888    Push "$SYSWOW64DIR\d3d9.dll"
    887889    Call PrepareWRPFile
    888890
    889891    ; Exchange DLLs
    890     !insertmacro InstallLib DLL NOTSHARED NOREBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d8.dll" "$SYSDIR\d3d8.dll" "$TEMP"
    891     !insertmacro InstallLib DLL NOTSHARED NOREBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d9.dll" "$SYSDIR\d3d9.dll" "$TEMP"
     892    !insertmacro InstallLib DLL NOTSHARED NOREBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d8.dll" "$SYSWOW64DIR\d3d8.dll" "$TEMP"
     893    !insertmacro InstallLib DLL NOTSHARED NOREBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d9.dll" "$SYSWOW64DIR\d3d9.dll" "$TEMP"
    892894
    893895    ; If exchange above failed, do it on reboot
    894     !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d8.dll" "$SYSDIR\d3d8.dll" "$TEMP"
    895     !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d9.dll" "$SYSDIR\d3d9.dll" "$TEMP"
    896 
    897     ${DisableX64FSRedirection}
     896    !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d8.dll" "$SYSWOW64DIR\d3d8.dll" "$TEMP"
     897    !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED "$%VBOX_PATH_ADDITIONS_WIN_X86%\d3d9.dll" "$SYSWOW64DIR\d3d9.dll" "$TEMP"
     898
    898899  !endif ; amd64
    899900  Goto done
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette