From ad1c1b2da8cb58bfc12bc34b342f0a7094ebbfe6 Mon Sep 17 00:00:00 2001 From: Justin Miller Date: Sun, 8 Sep 2024 01:18:52 -0700 Subject: [PATCH] [KERNELBASE] Version.c now builds --- dll/win32/KernelBase/wine/CMakeLists.txt | 1 + dll/win32/KernelBase/wine/hacks.h | 14 +++- sdk/include/psdk/appmodel.h | 98 ++++++++++++++++++++++++ 3 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 sdk/include/psdk/appmodel.h diff --git a/dll/win32/KernelBase/wine/CMakeLists.txt b/dll/win32/KernelBase/wine/CMakeLists.txt index 42710bcaecdb7..c1005ce9d980f 100644 --- a/dll/win32/KernelBase/wine/CMakeLists.txt +++ b/dll/win32/KernelBase/wine/CMakeLists.txt @@ -14,6 +14,7 @@ include_directories(BEFORE ${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine) list(APPEND SOURCE_STATIC #console.c #looks like ReactOS console.c is nothing like wine. loader.c + version.c volume.c) add_library(kernelbase_static ${SOURCE_STATIC}) diff --git a/dll/win32/KernelBase/wine/hacks.h b/dll/win32/KernelBase/wine/hacks.h index 4e5e79a1eab99..de15767593223 100644 --- a/dll/win32/KernelBase/wine/hacks.h +++ b/dll/win32/KernelBase/wine/hacks.h @@ -6,11 +6,21 @@ #define RESOURCE_ENUM_MUI 0x0002 #define RESOURCE_ENUM_MUI_SYSTEM 0x0004 #define RESOURCE_ENUM_VALIDATE 0x0008 - +#define PROCESSOR_ARCHITECTURE_NEUTRAL 11 +#define PROCESSOR_ARCHITECTURE_ARM64 12 //ddk #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1) //def ndk +NTSYSAPI +BOOLEAN +NTAPI +RtlGetProductInfo( + _In_ ULONG OSMajorVersion, + _In_ ULONG OSMinorVersion, + _In_ ULONG SpMajorVersion, + _In_ ULONG SpMinorVersion, + _Out_ PULONG ReturnedProductType); NTSYSAPI NTSTATUS WINAPI RtlQueryActivationContextApplicationSettings(DWORD,HANDLE,const WCHAR*,const WCHAR*,WCHAR*,SIZE_T,SIZE_T*); NTSYSAPI NTSTATUS WINAPI LdrSetDefaultDllDirectories(ULONG); NTSYSAPI NTSTATUS WINAPI LdrRemoveDllDirectory(void*); @@ -28,6 +38,8 @@ NTSYSAPI NTSTATUS WINAPI LdrRemoveDllDirectory(void*); //kernel32 + + BOOL WINAPI GetVolumeInformationByHandleW( HANDLE handle, WCHAR *label, DWORD label_len, DWORD *serial, DWORD *filename_len, DWORD *flags, WCHAR *fsname, DWORD fsname_len ); diff --git a/sdk/include/psdk/appmodel.h b/sdk/include/psdk/appmodel.h new file mode 100644 index 0000000000000..8c219e8080a75 --- /dev/null +++ b/sdk/include/psdk/appmodel.h @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2017 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ +#ifndef _APPMODEL_H_ +#define _APPMODEL_H_ + +#if defined(__cplusplus) +extern "C" { +#endif + +typedef enum AppPolicyMediaFoundationCodecLoading +{ + AppPolicyMediaFoundationCodecLoading_All = 0, + AppPolicyMediaFoundationCodecLoading_InboxOnly = 1, +} AppPolicyMediaFoundationCodecLoading; + +typedef enum AppPolicyProcessTerminationMethod +{ + AppPolicyProcessTerminationMethod_ExitProcess = 0, + AppPolicyProcessTerminationMethod_TerminateProcess = 1, +} AppPolicyProcessTerminationMethod; + +typedef enum AppPolicyThreadInitializationType +{ + AppPolicyThreadInitializationType_None = 0, + AppPolicyThreadInitializationType_InitializeWinRT = 1, +} AppPolicyThreadInitializationType; + +typedef enum AppPolicyShowDeveloperDiagnostic +{ + AppPolicyShowDeveloperDiagnostic_None = 0, + AppPolicyShowDeveloperDiagnostic_ShowUI = 1, +} AppPolicyShowDeveloperDiagnostic; + +typedef enum AppPolicyWindowingModel +{ + AppPolicyWindowingModel_None = 0, + AppPolicyWindowingModel_Universal = 1, + AppPolicyWindowingModel_ClassicDesktop = 2, + AppPolicyWindowingModel_ClassicPhone = 3 +} AppPolicyWindowingModel; + +typedef struct PACKAGE_VERSION +{ + union + { + UINT64 Version; + struct + { + USHORT Revision; + USHORT Build; + USHORT Minor; + USHORT Major; + } + DUMMYSTRUCTNAME; + } + DUMMYUNIONNAME; +} +PACKAGE_VERSION; + +typedef struct PACKAGE_ID +{ + UINT32 reserved; + UINT32 processorArchitecture; + PACKAGE_VERSION version; + WCHAR *name; + WCHAR *publisher; + WCHAR *resourceId; + WCHAR *publisherId; +} +PACKAGE_ID; + +LONG WINAPI AppPolicyGetMediaFoundationCodecLoading(HANDLE token, AppPolicyMediaFoundationCodecLoading *policy); +LONG WINAPI AppPolicyGetProcessTerminationMethod(HANDLE token, AppPolicyProcessTerminationMethod *policy); +LONG WINAPI AppPolicyGetShowDeveloperDiagnostic(HANDLE token, AppPolicyShowDeveloperDiagnostic *policy); +LONG WINAPI AppPolicyGetThreadInitializationType(HANDLE token, AppPolicyThreadInitializationType *policy); +LONG WINAPI AppPolicyGetWindowingModel(HANDLE processToken, AppPolicyWindowingModel *policy); +LONG WINAPI PackageIdFromFullName(const WCHAR *full_name, UINT32 flags, UINT32 *buffer_length, BYTE *buffer); + +#if defined(__cplusplus) +} +#endif + +#endif /* _APPMODEL_H_ */