[vbox-dev] [Patch] Build windows guest with WDK and VCExpress

Vitali Pelenjow Vitali.Pelenjow at oracle.com
Tue May 15 12:46:31 GMT 2012


FYI, The patch will most likely break shared folders in W2K guest.

Vitali.

Howard Su wrote:
> After I upgrade to 4.1.14, i need following change to get it build.
>
> diff --git 
> a/external/VirtualBox/src/VBox/Additions/WINNT/Mouse/NT4/Makefile.kmk 
> b/external/VirtualBox/src/VBox/Additions/WINNT/Mouse/NT4/Makefile.kmk
> index d8e6f0b..123727f 100644
> --- a/external/VirtualBox/src/VBox/Additions/WINNT/Mouse/NT4/Makefile.kmk
> +++ b/external/VirtualBox/src/VBox/Additions/WINNT/Mouse/NT4/Makefile.kmk
> @@ -29,9 +29,10 @@ VBoxMouseNT_SOURCES     = \
>         VBoxPS2NT.cpp \
>         VBoxPS2NT.rc
>  VBoxMouseNT_LIBS        = \
> -       $(PATH_SDK_W2K3DDK_LIB)/exsup.lib \
> -       $(PATH_SDK_W2K3DDK_LIB)/ntoskrnl.lib \
> -       $(PATH_SDK_W2K3DDK_LIB)/hal.lib \
> +       exsup.lib \
> +       ntoskrnl.lib \
> +       hal.lib \
> +       bufferoverflowK.lib \
>         $(VBOX_LIB_VBGL_R0) \
>         $(VBOX_LIB_IPRT_GUEST_R0_NT4)
>  VBoxMouseNT_CLEAN       = \
> diff --git 
> a/external/VirtualBox/src/VBox/Additions/WINNT/Mouse/NT4/VBoxPS2NT.cpp 
> b/external/VirtualBox/src/VBox/Additions/WINNT/Mouse/NT4/VBoxPS2NT.cpp
> index 1b14593..14abb97 100644
> --- a/external/VirtualBox/src/VBox/Additions/WINNT/Mouse/NT4/VBoxPS2NT.cpp
> +++ b/external/VirtualBox/src/VBox/Additions/WINNT/Mouse/NT4/VBoxPS2NT.cpp
> @@ -23,10 +23,33 @@
>
>  #include <stdarg.h>
>  #include <string.h>
> +
> +#if (_MSC_VER >= 1400) && !defined(VBOX_WITH_PATCHED_DDK)
> +# include <iprt/asm.h>
> +# define _InterlockedExchange           
> _InterlockedExchange_StupidDDKVsCompilerCrap
> +# define _InterlockedExchangeAdd       
>  _InterlockedExchangeAdd_StupidDDKVsCompilerCrap
> +# define _InterlockedCompareExchange   
>  _InterlockedCompareExchange_StupidDDKVsCompilerCrap
> +# define _InterlockedCompareExchange64 
>  _InterlockedCompareExchange64_StupidDDKVsCompilerCrap
> +# define _InterlockedAddLargeStatistic 
>  _InterlockedAddLargeStatistic_StupidDDKVsCompilerCrap
> +# pragma warning(disable : 4163)
> +RT_C_DECLS_BEGIN
> +# include <ntddk.h>
> +RT_C_DECLS_END
> +# pragma warning(default : 4163)
> +# undef  _InterlockedExchange
> +# undef  _InterlockedExchangeAdd
> +# undef  _InterlockedCompareExchange
> +# undef  _InterlockedCompareExchange64
> +# undef  _InterlockedAddLargeStatistic
> +#else
> +RT_C_DECLS_BEGIN
> +# include <ntddk.h>
> +RT_C_DECLS_END
> +#endif
> +
>  RT_C_DECLS_BEGIN
>  #undef PAGE_SIZE
>  #undef PAGE_SHIFT
> -#include <ntddk.h>
>  #include <ntddkbd.h>
>  #include <ntddmou.h>
>  RT_C_DECLS_END
> diff --git 
> a/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/driver/Makefile.kmk 
> b/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/drive
> index 306efc4..d957a5b 100644
> --- 
> a/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/driver/Makefile.kmk
> +++ 
> b/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/driver/Makefile.kmk
> @@ -26,9 +26,6 @@ VBoxSF_TEMPLATE    = VBOXGUESTR0
>  VBoxSF_DEFS        = LOG_TO_BACKDOOR VBOX_WITH_HGCM IN_RING0
>  #VBoxSF_DEFS       += LOG_ENABLED
>
> -VBoxSF_SDKS.x86    = WINDDKW2K
> -VBoxSF_SDKS.amd64  = WINDDKWLH
> -
>  VBoxSF_INCS        = \
>         ../../../common/VBoxGuestLib
>  VBoxSF_LDFLAGS.x86   = -Entry:DriverEntry at 8
> @@ -43,25 +40,14 @@ VBoxSF_SOURCES     =  \
>         vbsfhlp.c \
>         VBoxSF.rc
>
> -VBoxSF_LIBS.x86  = \
> -       $(PATH_SDK_WINDDKW2K_LIB.x86)/fre/rxce.lib \
> -       $(PATH_SDK_WINDDKW2K_LIB.x86)/fre/rdbsslib.lib \
> -       $(PATH_SDK_WINDDKW2K_LIB.x86)/fre/copysup.lib \
> -       $(PATH_SDK_WINDDKW2K_LIB.x86)/ntoskrnl.lib \
> -       $(PATH_SDK_WINDDKW2K_LIB.x86)/hal.lib \
> -       $(PATH_SDK_WINDDKW2K_LIB.x86)/ksecdd.lib \
> -       $(PATH_SDK_WINDDKW2K_LIB.x86)/BufferOverflowK.lib
> -
> -VBoxSF_LIBS.amd64  = \
> -       $(PATH_SDK_WINDDKWLH_LIB.amd64)/rxce.lib \
> -       $(PATH_SDK_WINDDKWLH_LIB.amd64)/rdbsslib.lib \
> -       $(PATH_SDK_WINDDKWLH_LIB.amd64)/copysup.lib \
> -       $(PATH_SDK_WINDDKWLH_LIB.amd64)/ntoskrnl.lib \
> -       $(PATH_SDK_WINDDKWLH_LIB.amd64)/hal.lib \
> -       $(PATH_SDK_WINDDKWLH_LIB.amd64)/ksecdd.lib \
> -       $(PATH_SDK_WINDDKWLH_LIB.amd64)/BufferOverflowK.lib
> -
>  VBoxSF_LIBS = \
> +       rxce.lib \
> +       rdbsslib.lib \
> +       copysup.lib \
> +       ntoskrnl.lib \
> +       hal.lib \
> +       ksecdd.lib \
> +       BufferOverflowK.lib \
>         $(VBOX_LIB_VBGL_R0) \
>         $(VBOX_LIB_IPRT_GUEST_R0)
>
> diff --git 
> a/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/driver/file.c 
> b/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/driver/file
> index c1a35cc..6aa6d02 100644
> --- 
> a/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/driver/file.c
> +++ 
> b/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/driver/file.c
> @@ -54,11 +54,7 @@ static NTSTATUS vbsfReadInternal(IN PRX_CONTEXT 
> RxContext)
>           ByteCount, ByteOffset, FileSize));
>
>      /* @todo check if this is necessary. */
> -#if (NTDDI_VERSION >= NTDDI_VISTA)      /* Correct spelling for Vista 
> 6001 SDK. */
>      if (!FlagOn(capFcb->FcbState, FCB_STATE_READCACHING_ENABLED))
> -#else
> -    if (!FlagOn(capFcb->FcbState, FCB_STATE_READCACHEING_ENABLED))
> -#endif
>      {
>          if (ByteOffset >= FileSize)
>          {
> diff --git 
> a/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/driver/vbsf.c 
> b/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/driver/vbsf
> index 2208770..497a7bc 100644
> --- 
> a/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/driver/vbsf.c
> +++ 
> b/external/VirtualBox/src/VBox/Additions/WINNT/SharedFolders/driver/vbsf.c
> @@ -1381,12 +1381,23 @@ NTSTATUS VBoxMRxSetSdInfo(IN OUT struct 
> _RX_CONTEXT * RxContext)
>  /*
>   * WML stubs which are referenced by rdbsslib.
>   */
> -NTSTATUS WmlTinySystemControl(void)
> +NTSTATUS
> +WmlTinySystemControl(
> +    IN OUT PVOID WmiLibInfo,
> +    IN PVOID DeviceObject,
> +    IN PVOID Irp
> +    )
>  {
>      return STATUS_WMI_GUID_NOT_FOUND;
>  }
>
> -ULONG WmlTrace(void)
> +ULONG
> +WmlTrace(
> +    IN ULONG Type,
> +    IN LPVOID TraceGuid,
> +    IN ULONG64 LoggerHandle,
> +    ...
> +    )
>  {
>      return STATUS_SUCCESS;
>  }
>
>
> -- 
> -Howard
>
>
> _______________________________________________
> vbox-dev mailing list
> vbox-dev at virtualbox.org
> https://www.virtualbox.org/mailman/listinfo/vbox-dev





More information about the vbox-dev mailing list