[RSHELL]
[reactos.git] / ntoskrnl / rtl / misc.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: ntoskrnl/rtl/misc.c
5 * PURPOSE: Various functions
6 *
7 * PROGRAMMERS:
8 */
9
10 /* INCLUDES *****************************************************************/
11
12 #include <ntoskrnl.h>
13 #define NDEBUG
14 #include <debug.h>
15
16 /* GLOBALS *******************************************************************/
17
18 extern ULONG NtGlobalFlag;
19 extern ULONG NtMajorVersion;
20 extern ULONG NtMinorVersion;
21 extern ULONG NtOSCSDVersion;
22
23 /* FUNCTIONS *****************************************************************/
24
25 /*
26 * @implemented
27 */
28 ULONG
29 NTAPI
30 RtlGetNtGlobalFlags(VOID)
31 {
32 return NtGlobalFlag;
33 }
34
35 /*
36 * @implemented
37 */
38 NTSTATUS
39 NTAPI
40 RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation)
41 {
42 PAGED_CODE();
43
44 /* Return the basics */
45 lpVersionInformation->dwMajorVersion = NtMajorVersion;
46 lpVersionInformation->dwMinorVersion = NtMinorVersion;
47 lpVersionInformation->dwBuildNumber = NtBuildNumber & 0x3FFF;
48 lpVersionInformation->dwPlatformId = VER_PLATFORM_WIN32_NT;
49
50 /* Check if this is the extended version */
51 if (lpVersionInformation->dwOSVersionInfoSize == sizeof(RTL_OSVERSIONINFOEXW))
52 {
53 PRTL_OSVERSIONINFOEXW InfoEx = (PRTL_OSVERSIONINFOEXW)lpVersionInformation;
54 InfoEx->wServicePackMajor = (USHORT)(CmNtCSDVersion >> 8) & 0xFF;
55 InfoEx->wServicePackMinor = (USHORT)(CmNtCSDVersion & 0xFF);
56 InfoEx->wSuiteMask = (USHORT)(SharedUserData->SuiteMask & 0xFFFF);
57 InfoEx->wProductType = SharedUserData->NtProductType;
58 InfoEx->wReserved = 0;
59 }
60
61 /* Always succeed */
62 return STATUS_SUCCESS;
63 }
64
65 /* EOF */