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
15
BOOLEAN
16
WINAPI
17
RtlGetProductInfo
(
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 */
BOOLEAN
unsigned char BOOLEAN
Definition:
actypes.h:127
NULL
#define NULL
Definition:
types.h:112
TRUE
#define TRUE
Definition:
types.h:120
FALSE
#define FALSE
Definition:
types.h:117
NtProductWinNt
@ NtProductWinNt
Definition:
shellpath.c:64
NtProductLanManNt
@ NtProductLanManNt
Definition:
shellpath.c:65
NtProductServer
@ NtProductServer
Definition:
shellpath.c:66
_Out_
#define _Out_
Definition:
no_sal2.h:160
_In_
#define _In_
Definition:
no_sal2.h:158
PRODUCT_ENTERPRISE_SERVER
#define PRODUCT_ENTERPRISE_SERVER
PRODUCT_BUSINESS
#define PRODUCT_BUSINESS
PRODUCT_UNDEFINED
#define PRODUCT_UNDEFINED
PRODUCT_STANDARD_SERVER
#define PRODUCT_STANDARD_SERVER
PRODUCT_PROFESSIONAL
#define PRODUCT_PROFESSIONAL
RtlGetProductInfo
BOOLEAN WINAPI RtlGetProductInfo(_In_ ULONG OSMajorVersion, _In_ ULONG OSMinorVersion, _In_ ULONG SpMajorVersion, _In_ ULONG SpMinorVersion, _Out_ PULONG ReturnedProductType)
Definition:
product.c:17
SharedUserData
#define SharedUserData
rtl.h
PULONG
uint32_t * PULONG
Definition:
typedefs.h:59
ULONG
uint32_t ULONG
Definition:
typedefs.h:59
WINAPI
#define WINAPI
Definition:
msvc.h:6
sdk
lib
rtl
product.c
Generated on Tue Jun 2 2026 06:15:10 for ReactOS by
1.9.6