https://git.reactos.org/?p=reactos.git;a=commitdiff;h=607335908621dd1add41cc36a5b861db0318ecc2

commit 607335908621dd1add41cc36a5b861db0318ecc2
Author: Timo Kreuzer <timo.kreu...@reactos.org>
AuthorDate: Thu Oct 19 10:18:19 2017 +0200

    [REACTOS] Fix x64 build
    - SIZE_T -> ULONG in KsecGatherEntropyData
    - Add missing ZwQueryInformationProcess() prototype for x64 build of btrfs
    - Fix ml.exe path for VS 2017 Community Edition
    - Add missing Handle32ToHandle to basetsd.h
---
 drivers/crypto/ksecdd/random.c     |  2 +-
 drivers/filesystems/btrfs/create.c | 12 ++++++++++++
 sdk/cmake/msvc.cmake               |  4 +++-
 sdk/include/psdk/basetsd.h         |  1 +
 4 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/ksecdd/random.c b/drivers/crypto/ksecdd/random.c
index b338e3c148..53ed1e8866 100644
--- a/drivers/crypto/ksecdd/random.c
+++ b/drivers/crypto/ksecdd/random.c
@@ -96,7 +96,7 @@ KsecGatherEntropyData(
     PTEB Teb;
     PPEB Peb;
     PWSTR String;
-    SIZE_T ReturnLength;
+    ULONG ReturnLength;
     NTSTATUS Status;
 
     /* Query some generic values */
diff --git a/drivers/filesystems/btrfs/create.c 
b/drivers/filesystems/btrfs/create.c
index 15728de757..191bf63be8 100644
--- a/drivers/filesystems/btrfs/create.c
+++ b/drivers/filesystems/btrfs/create.c
@@ -2266,6 +2266,18 @@ static NTSTATUS 
create_stream(_Requires_lock_held_(_Curr_->tree_lock) _Requires_
 
 // LXSS programs can be distinguished by the fact they have a NULL PEB.
 #ifdef _AMD64_
+#ifdef __REACTOS__
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryInformationProcess (
+    _In_ HANDLE ProcessHandle,
+    _In_ PROCESSINFOCLASS ProcessInformationClass,
+    _Out_ PVOID ProcessInformation,
+    _In_ ULONG ProcessInformationLength,
+    _Out_opt_ PULONG ReturnLength
+);
+#endif
 static __inline BOOL called_from_lxss() {
     NTSTATUS Status;
     PROCESS_BASIC_INFORMATION pbi;
diff --git a/sdk/cmake/msvc.cmake b/sdk/cmake/msvc.cmake
index b76b46d095..4705b3cae9 100644
--- a/sdk/cmake/msvc.cmake
+++ b/sdk/cmake/msvc.cmake
@@ -407,7 +407,9 @@ set(PSEH_LIB "pseh")
 # Use a full path for the x86 version of ml when using x64 VS.
 # It's not a problem when using the DDK/WDK because, in x64 mode,
 # both the x86 and x64 versions of ml are available.
-if((ARCH STREQUAL "amd64") AND (DEFINED ENV{VCINSTALLDIR}))
+if((ARCH STREQUAL "amd64") AND (DEFINED ENV{VCToolsInstallDir}))
+    set(CMAKE_ASM16_COMPILER $ENV{VCToolsInstallDir}/bin/HostX86/x86/ml.exe)
+elseif((ARCH STREQUAL "amd64") AND (DEFINED ENV{VCINSTALLDIR}))
     set(CMAKE_ASM16_COMPILER $ENV{VCINSTALLDIR}/bin/ml.exe)
 elseif(ARCH STREQUAL "arm")
     set(CMAKE_ASM16_COMPILER armasm.exe)
diff --git a/sdk/include/psdk/basetsd.h b/sdk/include/psdk/basetsd.h
index 103560f6c2..29b1026d97 100644
--- a/sdk/include/psdk/basetsd.h
+++ b/sdk/include/psdk/basetsd.h
@@ -68,6 +68,7 @@ typedef unsigned __int64 HANDLE_PTR;
 typedef unsigned int UHALF_PTR, *PUHALF_PTR;
 typedef int HALF_PTR, *PHALF_PTR;
 #define ADDRESS_TAG_BIT 0x40000000000UI64
+#define Handle32ToHandle( h ) ((HANDLE)(LONG_PTR)(LONG)(h))
 #else /*  !_WIN64 */
 #define __int3264   __int32
 #define ADDRESS_TAG_BIT 0x80000000UL

Reply via email to