ReactOS 0.4.17-dev-243-g1369312
product.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS runtime library (RTL)
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Implementation of RtlGetProductInfo
5 * COPYRIGHT: Copyright 2026 Timo Kreuzer <timo.kreuzer@reactos.org>
6 */
7
8/* INCLUDES *****************************************************************/
9
10#include <rtl.h>
11
12#define NDEBUG
13#include <debug.h>
14
18 _In_ ULONG OSMajorVersion,
19 _In_ ULONG OSMinorVersion,
20 _In_ ULONG SpMajorVersion,
21 _In_ ULONG SpMinorVersion,
22 _Out_ PULONG ReturnedProductType)
23{
24 if (ReturnedProductType == NULL)
25 {
26 return FALSE;
27 }
28
29 if (OSMajorVersion < 6)
30 {
31 *ReturnedProductType = PRODUCT_UNDEFINED;
32 return FALSE;
33 }
34
35 if (SharedUserData->NtProductType == NtProductWinNt)
36 {
37 if ((OSMajorVersion == 6) && (OSMinorVersion == 0))
38 {
39 *ReturnedProductType = PRODUCT_BUSINESS;
40 }
41 else
42 {
43 *ReturnedProductType = PRODUCT_PROFESSIONAL;
44 }
45 return TRUE;
46 }
47 else if (SharedUserData->NtProductType == NtProductLanManNt)
48 {
49 *ReturnedProductType = PRODUCT_ENTERPRISE_SERVER;
50 return TRUE;
51 }
52 else if (SharedUserData->NtProductType == NtProductServer)
53 {
54 *ReturnedProductType = PRODUCT_STANDARD_SERVER;
55 return TRUE;
56 }
57
58 *ReturnedProductType = PRODUCT_UNDEFINED;
59 return FALSE;
60}
61
62/* EOF */
unsigned char BOOLEAN
Definition: actypes.h:127
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
@ NtProductWinNt
Definition: shellpath.c:64
@ NtProductLanManNt
Definition: shellpath.c:65
@ NtProductServer
Definition: shellpath.c:66
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define PRODUCT_ENTERPRISE_SERVER
#define PRODUCT_BUSINESS
#define PRODUCT_UNDEFINED
#define PRODUCT_STANDARD_SERVER
#define PRODUCT_PROFESSIONAL
BOOLEAN WINAPI RtlGetProductInfo(_In_ ULONG OSMajorVersion, _In_ ULONG OSMinorVersion, _In_ ULONG SpMajorVersion, _In_ ULONG SpMinorVersion, _Out_ PULONG ReturnedProductType)
Definition: product.c:17
#define SharedUserData
uint32_t * PULONG
Definition: typedefs.h:59
uint32_t ULONG
Definition: typedefs.h:59
#define WINAPI
Definition: msvc.h:6