[vbox-dev] [Patch] Build windows guest with WDK and VCExpress
Vitali Pelenjow
Vitali.Pelenjow at oracle.com
Tue May 15 05:46:31 PDT 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