mirror of
https://github.com/reactos/reactos.git
synced 2026-06-21 02:16:05 +08:00
[RTL][NTDLL][KERNEL32] Implement (Rtl)GetProductInfo
This commit is contained in:
@@ -902,7 +902,7 @@
|
||||
@ stdcall RtlGetOwnerSecurityDescriptor(ptr ptr ptr)
|
||||
@ stdcall -stub -version=0x600+ RtlGetParentLocaleName(wstr long long long)
|
||||
@ stdcall RtlGetProcessHeaps(long ptr)
|
||||
@ stub -version=0x600+ RtlGetProductInfo
|
||||
@ stdcall -version=0x600+ RtlGetProductInfo(long long long long ptr)
|
||||
@ stdcall RtlGetSaclSecurityDescriptor(ptr ptr ptr ptr)
|
||||
@ stdcall RtlGetSecurityDescriptorRMControl(ptr ptr)
|
||||
@ stdcall RtlGetSetBootStatusData(ptr long long ptr long long)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
@ stdcall LdrRegisterDllNotification(long ptr ptr ptr)
|
||||
@ stdcall LdrUnregisterDllNotification(ptr)
|
||||
|
||||
@ stdcall RtlGetProductInfo(long long long long ptr)
|
||||
@ stdcall RtlInitializeConditionVariable(ptr)
|
||||
@ stdcall RtlWakeConditionVariable(ptr)
|
||||
@ stdcall RtlWakeAllConditionVariable(ptr)
|
||||
|
||||
@@ -574,7 +574,7 @@
|
||||
@ stdcall GetProcessVersion(long)
|
||||
@ stdcall GetProcessWorkingSetSize(long ptr ptr)
|
||||
@ stdcall GetProcessWorkingSetSizeEx(long ptr ptr long)
|
||||
@ stub -version=0x600+ GetProductInfo
|
||||
@ stdcall -version=0x600+ GetProductInfo(long long long long ptr) ntdll.RtlGetProductInfo
|
||||
@ stdcall GetProfileIntA(str str long)
|
||||
@ stdcall GetProfileIntW(wstr wstr long)
|
||||
@ stdcall GetProfileSectionA(str ptr long)
|
||||
|
||||
@@ -65,3 +65,4 @@
|
||||
@ stdcall GetSystemTimePreciseAsFileTime(ptr) kernel32.GetSystemTimeAsFileTime
|
||||
@ stdcall TrySubmitThreadpoolCallback(ptr ptr ptr)
|
||||
@ stdcall FreeLibraryWhenCallbackReturns(ptr ptr) ntdll_vista.TpCallbackUnloadDllOnCompletion
|
||||
@ stdcall GetProductInfo(long long long long ptr) ntdll_vista.RtlGetProductInfo
|
||||
|
||||
@@ -19,6 +19,7 @@ list(APPEND RTL_WINE_SOURCE
|
||||
threadpool.c
|
||||
)
|
||||
list(APPEND RTL_WINE_SOURCE_VISTA
|
||||
product.c
|
||||
threadpool.c
|
||||
)
|
||||
set_source_files_properties(threadpool.c PROPERTIES COMPILE_DEFINITIONS __WINESRC__)
|
||||
|
||||
62
sdk/lib/rtl/product.c
Normal file
62
sdk/lib/rtl/product.c
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* PROJECT: ReactOS runtime library (RTL)
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Implementation of RtlGetProductInfo
|
||||
* COPYRIGHT: Copyright 2026 Timo Kreuzer <timo.kreuzer@reactos.org>
|
||||
*/
|
||||
|
||||
/* INCLUDES *****************************************************************/
|
||||
|
||||
#include <rtl.h>
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
BOOLEAN
|
||||
WINAPI
|
||||
RtlGetProductInfo(
|
||||
_In_ ULONG OSMajorVersion,
|
||||
_In_ ULONG OSMinorVersion,
|
||||
_In_ ULONG SpMajorVersion,
|
||||
_In_ ULONG SpMinorVersion,
|
||||
_Out_ PULONG ReturnedProductType)
|
||||
{
|
||||
if (ReturnedProductType == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (OSMajorVersion < 6)
|
||||
{
|
||||
*ReturnedProductType = PRODUCT_UNDEFINED;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (SharedUserData->NtProductType == NtProductWinNt)
|
||||
{
|
||||
if ((OSMajorVersion == 6) && (OSMinorVersion == 0))
|
||||
{
|
||||
*ReturnedProductType = PRODUCT_BUSINESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
*ReturnedProductType = PRODUCT_PROFESSIONAL;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
else if (SharedUserData->NtProductType == NtProductLanManNt)
|
||||
{
|
||||
*ReturnedProductType = PRODUCT_ENTERPRISE_SERVER;
|
||||
return TRUE;
|
||||
}
|
||||
else if (SharedUserData->NtProductType == NtProductServer)
|
||||
{
|
||||
*ReturnedProductType = PRODUCT_STANDARD_SERVER;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
*ReturnedProductType = PRODUCT_UNDEFINED;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
Reference in New Issue
Block a user