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

commit d8b5c00c338e3cb508a6aabf00cdbfd32906c542
Author:     Timo Kreuzer <[email protected]>
AuthorDate: Sun Sep 13 18:55:17 2020 +0200
Commit:     Timo Kreuzer <[email protected]>
CommitDate: Fri Sep 25 09:45:54 2020 +0200

    [KERNEL32_VISTA] Move vista.c from kernel32 to kernel32_vista
    
    - Remove duplicated functions
    - Use AreFileApisANSI() instead of global variable bIsFileApiAnsi in shared 
kernel32_shared
---
 dll/win32/kernel32/CMakeLists.txt                  |   1 -
 dll/win32/kernel32/client/file/fileutils.c         |  10 +-
 dll/win32/kernel32/kernel32_vista/CMakeLists.txt   |   3 +
 dll/win32/kernel32/kernel32_vista/k32_vista.h      |  11 ++
 .../kernel32/kernel32_vista/kernel32_vista.spec    |  24 ++++
 .../kernel32/{client => kernel32_vista}/vista.c    | 155 ++-------------------
 6 files changed, 57 insertions(+), 147 deletions(-)

diff --git a/dll/win32/kernel32/CMakeLists.txt 
b/dll/win32/kernel32/CMakeLists.txt
index 616e0f453b5..7d31686837d 100644
--- a/dll/win32/kernel32/CMakeLists.txt
+++ b/dll/win32/kernel32/CMakeLists.txt
@@ -44,7 +44,6 @@ list(APPEND SOURCE
     client/vdm.c
     client/version.c
     client/virtmem.c
-    client/vista.c
     client/console/alias.c
     client/console/console.c
     client/console/history.c
diff --git a/dll/win32/kernel32/client/file/fileutils.c 
b/dll/win32/kernel32/client/file/fileutils.c
index 078f83006e2..2257608588a 100644
--- a/dll/win32/kernel32/client/file/fileutils.c
+++ b/dll/win32/kernel32/client/file/fileutils.c
@@ -28,7 +28,7 @@ FilenameA2W(LPCSTR NameA, BOOL alloc)
    RtlInitAnsiString(&str, NameA);
    pstrW = alloc ? &strW : &NtCurrentTeb()->StaticUnicodeString;
 
-   if (bIsFileApiAnsi)
+   if (AreFileApisANSI())
         Status= RtlAnsiStringToUnicodeString( pstrW, &str, (BOOLEAN)alloc );
    else
         Status= RtlOemStringToUnicodeString( pstrW, &str, (BOOLEAN)alloc );
@@ -64,7 +64,7 @@ FilenameU2A_FitOrFail(
    /* destLen should never exceed MAX_PATH */
    if (destLen > MAX_PATH) destLen = MAX_PATH;
 
-   ret = bIsFileApiAnsi? RtlUnicodeStringToAnsiSize(SourceU) : 
RtlUnicodeStringToOemSize(SourceU);
+   ret = AreFileApisANSI() ? RtlUnicodeStringToAnsiSize(SourceU) : 
RtlUnicodeStringToOemSize(SourceU);
    /* ret incl. nullchar */
 
    if (DestA && (INT)ret <= destLen)
@@ -75,7 +75,7 @@ FilenameU2A_FitOrFail(
       str.MaximumLength = (USHORT)destLen;
 
 
-      if (bIsFileApiAnsi)
+      if (AreFileApisANSI())
          RtlUnicodeStringToAnsiString(&str, SourceU, FALSE );
       else
          RtlUnicodeStringToOemString(&str, SourceU, FALSE );
@@ -129,7 +129,7 @@ FilenameA2W_N(
 
     if (srclen < 0) srclen = strlen( src ) + 1;
 
-    if (bIsFileApiAnsi)
+    if (AreFileApisANSI())
         RtlMultiByteToUnicodeN( dest, destlen* sizeof(WCHAR), &ret, 
(LPSTR)src, srclen  );
     else
         RtlOemToUnicodeN( dest, destlen* sizeof(WCHAR), &ret, (LPSTR)src, 
srclen );
@@ -154,7 +154,7 @@ FilenameW2A_N(
 
     if (srclen < 0) srclen = wcslen( src ) + 1;
 
-    if (bIsFileApiAnsi)
+    if (AreFileApisANSI())
         RtlUnicodeToMultiByteN( dest, destlen, &ret, (LPWSTR) src, srclen * 
sizeof(WCHAR));
     else
         RtlUnicodeToOemN( dest, destlen, &ret, (LPWSTR) src, srclen * 
sizeof(WCHAR) );
diff --git a/dll/win32/kernel32/kernel32_vista/CMakeLists.txt 
b/dll/win32/kernel32/kernel32_vista/CMakeLists.txt
index 915346689a1..51efae70f8b 100644
--- a/dll/win32/kernel32/kernel32_vista/CMakeLists.txt
+++ b/dll/win32/kernel32/kernel32_vista/CMakeLists.txt
@@ -3,6 +3,7 @@ remove_definitions(-D_WIN32_WINNT=0x502 -DWINVER=0x502)
 add_definitions(-D_WIN32_WINNT=0x600 -DWINVER=0x600)
 
 add_definitions(-D_KERNEL32_)
+include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/subsys)
 spec2def(kernel32_vista.dll kernel32_vista.spec ADD_IMPORTLIB)
 
 list(APPEND SOURCE
@@ -11,10 +12,12 @@ list(APPEND SOURCE
     GetTickCount64.c
     InitOnceExecuteOnce.c
     sync.c
+    vista.c
     ${CMAKE_CURRENT_BINARY_DIR}/kernel32_vista.def)
 
 add_library(kernel32_vista MODULE ${SOURCE})
 set_module_type(kernel32_vista win32dll ENTRYPOINT DllMain 12)
+target_link_libraries(kernel32_vista kernel32_shared)
 add_importlibs(kernel32_vista kernel32 ntdll_vista ntdll)
 add_delay_importlibs(kernel32_vista ntdll_vista)
 add_dependencies(kernel32_vista psdk)
diff --git a/dll/win32/kernel32/kernel32_vista/k32_vista.h 
b/dll/win32/kernel32/kernel32_vista/k32_vista.h
index fff9ba8d0b4..7f78e53e68a 100644
--- a/dll/win32/kernel32/kernel32_vista/k32_vista.h
+++ b/dll/win32/kernel32/kernel32_vista/k32_vista.h
@@ -6,7 +6,18 @@
 #include <windef.h>
 #include <winbase.h>
 
+/* Redefine NTDDI_VERSION to 2K3 SP1 to get correct NDK definitions */
+#undef NTDDI_VERSION
+#define NTDDI_VERSION NTDDI_WS03SP1
+
+#include <ndk/iofuncs.h>
 #include <ndk/kefuncs.h>
+#include <ndk/obfuncs.h>
 #include <ndk/psfuncs.h>
 #include <ndk/rtlfuncs.h>
 
+/* CSRSS Headers */
+#include <win/base.h>
+
+/* Internal Kernel32 Header */
+#include "../include/kernel32.h"
diff --git a/dll/win32/kernel32/kernel32_vista/kernel32_vista.spec 
b/dll/win32/kernel32/kernel32_vista/kernel32_vista.spec
index f61e6e6dc36..02c1cb05739 100644
--- a/dll/win32/kernel32/kernel32_vista/kernel32_vista.spec
+++ b/dll/win32/kernel32/kernel32_vista/kernel32_vista.spec
@@ -16,3 +16,27 @@
 @ stdcall WakeConditionVariable(ptr)
 
 @ stdcall InitializeCriticalSectionEx(ptr long long)
+
+@ stdcall ApplicationRecoveryFinished(long)
+@ stdcall ApplicationRecoveryInProgress(ptr)
+@ stdcall CreateSymbolicLinkA(str str long)
+@ stdcall CreateSymbolicLinkW(wstr wstr long)
+@ stdcall GetApplicationRecoveryCallback(ptr ptr ptr ptr ptr)
+@ stdcall GetApplicationRestart(ptr wstr ptr ptr)
+@ stdcall GetFileBandwidthReservation(ptr ptr ptr ptr ptr ptr)
+@ stdcall GetFileMUIInfo(long wstr ptr ptr)
+@ stdcall GetFileMUIPath(long wstr wstr ptr wstr ptr ptr)
+@ stdcall GetFinalPathNameByHandleA(ptr str long long)
+@ stdcall GetFinalPathNameByHandleW(ptr wstr long long)
+@ stdcall GetSystemPreferredUILanguages(long ptr wstr ptr)
+@ stdcall GetThreadPreferredUILanguages(long ptr wstr ptr)
+@ stdcall GetThreadUILanguage()
+@ stdcall GetUILanguageInfo(long wstr wstr ptr ptr)
+@ stdcall GetUserPreferredUILanguages(long ptr wstr ptr)
+@ stdcall OpenFileById(ptr ptr long long ptr long)
+@ stdcall QueryFullProcessImageNameA(ptr long str ptr)
+@ stdcall QueryFullProcessImageNameW(ptr long wstr ptr)
+@ stdcall RegisterApplicationRecoveryCallback(ptr ptr long long)
+@ stdcall RegisterApplicationRestart(wstr long)
+@ stdcall SetFileBandwidthReservation(ptr long long long ptr ptr)
+@ stdcall SetThreadPreferredUILanguages(long wstr ptr)
diff --git a/dll/win32/kernel32/client/vista.c 
b/dll/win32/kernel32/kernel32_vista/vista.c
similarity index 83%
rename from dll/win32/kernel32/client/vista.c
rename to dll/win32/kernel32/kernel32_vista/vista.c
index 8fa60a995cd..743cb430721 100644
--- a/dll/win32/kernel32/client/vista.c
+++ b/dll/win32/kernel32/kernel32_vista/vista.c
@@ -7,125 +7,19 @@
 
 /* INCLUDES 
*******************************************************************/
 
-#include <k32.h>
+#include <k32_vista.h>
 
-#define NDEBUG
-#include <debug.h>
-
-#if _WIN32_WINNT >= 0x600
-
-/* FIXME: Move these RTL declarations to the NDK */
-NTSTATUS
-NTAPI
-RtlSleepConditionVariableCS(IN OUT PRTL_CONDITION_VARIABLE ConditionVariable,
-                            IN OUT PRTL_CRITICAL_SECTION CriticalSection,
-                            IN PLARGE_INTEGER TimeOut  OPTIONAL);
-
-NTSTATUS
-NTAPI
-RtlSleepConditionVariableSRW(IN OUT PRTL_CONDITION_VARIABLE ConditionVariable,
-                             IN OUT PRTL_SRWLOCK SRWLock,
-                             IN PLARGE_INTEGER TimeOut  OPTIONAL,
-                             IN ULONG Flags);
-
-/* PUBLIC FUNCTIONS 
***********************************************************/
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-SleepConditionVariableCS(IN OUT PCONDITION_VARIABLE ConditionVariable,
-                         IN OUT PCRITICAL_SECTION CriticalSection,
-                         IN DWORD dwMilliseconds)
-{
-    NTSTATUS Status = STATUS_SUCCESS;
-#if 0
-    LARGE_INTEGER TimeOut;
-    PLARGE_INTEGER TimeOutPtr = NULL;
-
-    if (dwMilliseconds != INFINITE)
-    {
-        TimeOut.QuadPart = dwMilliseconds * -10000LL;
-        TimeOutPtr = &TimeOut;
-    }
-
-    Status = 
RtlSleepConditionVariableCS((PRTL_CONDITION_VARIABLE)ConditionVariable,
-                                         
(PRTL_CRITICAL_SECTION)CriticalSection,
-                                         TimeOutPtr);
+#if _WIN32_WINNT != _WIN32_WINNT_VISTA
+#error "This file must be compiled with _WIN32_WINNT == _WIN32_WINNT_VISTA"
 #endif
-    if (!NT_SUCCESS(Status))
-    {
-        BaseSetLastNTError(Status);
-        return FALSE;
-    }
-
-    return TRUE;
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-SleepConditionVariableSRW(IN OUT PCONDITION_VARIABLE ConditionVariable,
-                          IN OUT PSRWLOCK SRWLock,
-                          IN DWORD dwMilliseconds,
-                          IN ULONG Flags)
-{
-    NTSTATUS Status = STATUS_SUCCESS;
-#if 0
-    LARGE_INTEGER TimeOut;
-    PLARGE_INTEGER TimeOutPtr = NULL;
 
-    if (dwMilliseconds != INFINITE)
-    {
-        TimeOut.QuadPart = dwMilliseconds * -10000LL;
-        TimeOutPtr = &TimeOut;
-    }
+// This is defined only in ntifs.h
+#define REPARSE_DATA_BUFFER_HEADER_SIZE   FIELD_OFFSET(REPARSE_DATA_BUFFER, 
GenericReparseBuffer)
 
-    Status = 
RtlSleepConditionVariableSRW((PRTL_CONDITION_VARIABLE)ConditionVariable,
-                                          (PRTL_SRWLOCK)SRWLock,
-                                          TimeOutPtr,
-                                          Flags);
-#endif
-    if (!NT_SUCCESS(Status))
-    {
-        BaseSetLastNTError(Status);
-        return FALSE;
-    }
-
-    return TRUE;
-}
-
-
-/*
- * @implemented
- */
-BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION 
lpCriticalSection,
-                                        IN DWORD dwSpinCount,
-                                        IN DWORD flags)
-{
-    NTSTATUS Status;
-
-    /* FIXME: Flags ignored */
-
-    /* Initialize the critical section */
-    Status = RtlInitializeCriticalSectionAndSpinCount(
-        (PRTL_CRITICAL_SECTION)lpCriticalSection,
-        dwSpinCount);
-    if (!NT_SUCCESS(Status))
-    {
-        /* Set failure code */
-        BaseSetLastNTError(Status);
-        return FALSE;
-    }
-
-    /* Success */
-    return TRUE;
-}
+#define NDEBUG
+#include <debug.h>
 
+/* PUBLIC FUNCTIONS 
***********************************************************/
 
 /*
  * @implemented
@@ -267,7 +161,7 @@ GetApplicationRestart(IN HANDLE hProcess,
  */
 VOID
 WINAPI
-RecoveryFinished(IN BOOL bSuccess)
+ApplicationRecoveryFinished(IN BOOL bSuccess)
 {
     UNIMPLEMENTED;
 }
@@ -278,7 +172,7 @@ RecoveryFinished(IN BOOL bSuccess)
  */
 HRESULT
 WINAPI
-RecoveryInProgress(OUT PBOOL pbCancelled)
+ApplicationRecoveryInProgress(OUT PBOOL pbCancelled)
 {
     UNIMPLEMENTED;
     return E_FAIL;
@@ -692,30 +586,6 @@ OpenFileById(IN HANDLE hFile,
 }
 
 
-/*
- * @implemented
- */
-ULONGLONG
-WINAPI
-GetTickCount64(VOID)
-{
-    ULARGE_INTEGER TickCount;
-    
-    while (TRUE)
-    {
-        TickCount.HighPart = (ULONG)SharedUserData->TickCount.High1Time;
-        TickCount.LowPart = SharedUserData->TickCount.LowPart;
-
-        if (TickCount.HighPart == (ULONG)SharedUserData->TickCount.High2Time) 
break;
-
-        YieldProcessor();
-     }
-     
-     return (UInt32x32To64(TickCount.LowPart, 
SharedUserData->TickCountMultiplier) >> 24) +
-            (UInt32x32To64(TickCount.HighPart, 
SharedUserData->TickCountMultiplier) << 8);
-}
-
-#endif
 
 /*
   Vista+ MUI support functions
@@ -766,6 +636,7 @@ GetFileMUIPath(
 /*
  * @unimplemented
  */
+#if 0 // This is Windows 7+
 BOOL
 WINAPI
 GetProcessPreferredUILanguages(
@@ -778,6 +649,7 @@ GetProcessPreferredUILanguages(
     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     return FALSE;
 }
+#endif
 
 /*
 * @unimplemented
@@ -860,6 +732,7 @@ GetUserPreferredUILanguages(
 /*
  * @unimplemented
  */
+#if 0 // Tis is Windows 7+
 BOOL
 WINAPI
 SetProcessPreferredUILanguages(
@@ -871,7 +744,7 @@ SetProcessPreferredUILanguages(
     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     return FALSE;
 }
-
+#endif
 
 /*
  * @unimplemented

Reply via email to