- Made init.c use version data from ntverp.h instead of hard-coding.
- Defined NT 5.2.3790.1830 as the version we report.
- Fixed up .rc file to be correct and match DDK-sytnax/style.
- For now only the kernel uses this new versionning scheme, but we should change the build system later to use this for every component.
svn path=/branches/alex-kd-branch/; revision=25847
#pragma pack(push,4)
+#ifndef VER_PRODUCTBUILD
#define VER_PRODUCTBUILD 10000
+#endif
#ifndef NTSYSAPI
#define NTSYSAPI
--- /dev/null
+/*\r
+ * PROJECT: ReactOS\r
+ * LICENSE: GPL - See COPYING in the top level directory\r
+ * FILE: include/psdk/common.ver\r
+ * PURPOSE: Common Version File.\r
+ * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)\r
+ */\r
+\r
+//\r
+// Copyright Year\r
+//\r
+#ifndef VER_LEGALCOPYRIGHT_YEARS\r
+#define VER_LEGALCOPYRIGHT_YEARS "2007"\r
+#endif\r
+\r
+//\r
+// Copyright String\r
+//\r
+#ifndef VER_LEGALCOPYRIGHT_STR\r
+#if defined(RC_INVOKED) && !defined(WIN16)\r
+#define VER_LEGALCOPYRIGHT_STR L"\251 ReactOS Foundation. All rights reserved."\r
+#else\r
+#define VER_LEGALCOPYRIGHT_STR "Copyright (c) ReactOS Foundation. All rights reserved."\r
+#endif\r
+#endif\r
+\r
+//\r
+// Product Name String\r
+//\r
+#ifndef VER_PRODUCTNAME_STR\r
+#ifdef RC_INVOKED\r
+#define VER_PRODUCTNAME_STR L"ReactOS\256 Operating System"\r
+#else\r
+#define VER_PRODUCTNAME_STR "ReactOS (R) Operating System"\r
+#endif\r
+#endif\r
+\r
+//\r
+// The File Version is the same as the Product Version\r
+//\r
+#ifndef VER_FILEVERSION\r
+#define VER_FILEVERSION VER_PRODUCTVERSION\r
+#endif\r
+#ifndef VER_FILEVERSION_STR\r
+#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR\r
+#endif\r
+\r
+//\r
+// If no Original Name was given, use the Internal NAme\r
+//\r
+#ifndef VER_ORIGINALFILENAME_STR\r
+#define VER_ORIGINALFILENAME_STR VER_INTERNALNAME_STR\r
+#endif\r
+\r
+//\r
+// Allow tagging a Build by Machine/Date\r
+//\r
+#if defined(__BUILDMACHINE__)\r
+#if defined(__BUILDDATE__)\r
+#define B2(x,y) " (" #x "." #y ")"\r
+#define B1(x,y) B2(x, y)\r
+#define BUILD_MACHINE_TAG B1(__BUILDMACHINE__, __BUILDDATE__)\r
+#else\r
+#define B2(x) " built by: " #x\r
+#define B1(x) B2(x)\r
+#define BUILD_MACHINE_TAG B1(__BUILDMACHINE__)\r
+#endif\r
+#if defined(__BUILDMACHINE_LEN__)\r
+#if __BUILDMACHINE_LEN__ >= 25\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG\r
+#elif __BUILDMACHINE_LEN__ == 24\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 23\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 22\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 21\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 20\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 19\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 18\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 17\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 16\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 15 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 14 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 13 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 12 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 11 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 10 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 9 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 8 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 7 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 6 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 5 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 4 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 3 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 2 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#elif __BUILDMACHINE_LEN__ == 1 \r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "\r
+#else\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG\r
+#endif\r
+#else\r
+#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG\r
+#endif\r
+#else\r
+#define BUILD_MACHINE_TAG\r
+#define BUILD_MACHINE_TAG_PADDED\r
+#endif\r
+\r
+//\r
+// Set default neutral Unicode Language ID\r
+//\r
+#ifndef VER_VERSION_UNICODE_LANG\r
+#define VER_VERSION_UNICODE_LANG "000004B0"\r
+#endif\r
+\r
+//\r
+// Set default netural ANSI Language ID\r
+//\r
+#ifndef VER_VERSION_ANSI_LANG\r
+#define VER_VERSION_ANSI_LANG "000004E4"\r
+#endif\r
+\r
+//\r
+// Set default netural translation ID\r
+//\r
+#ifndef VER_VERSION_TRANSLATION\r
+#define VER_VERSION_TRANSLATION 0x0000, 0x04B0\r
+#endif\r
+\r
+//\r
+// Make sure the Resource Compiler called us.\r
+// If so, then build the actual version resource.\r
+//\r
+#ifdef RC_INVOKED\r
+\r
+VS_VERSION_INFO VERSIONINFO\r
+FILEVERSION VER_FILEVERSION\r
+PRODUCTVERSION VER_PRODUCTVERSION\r
+FILEFLAGSMASK VER_FILEFLAGSMASK\r
+FILEFLAGS VER_FILEFLAGS\r
+FILEOS VER_FILEOS\r
+FILETYPE VER_FILETYPE\r
+FILESUBTYPE VER_FILESUBTYPE\r
+BEGIN\r
+ BLOCK "StringFileInfo"\r
+ BEGIN\r
+ BLOCK VER_VERSION_UNICODE_LANG\r
+ BEGIN\r
+ VALUE "CompanyName", VER_COMPANYNAME_STR\r
+ VALUE "FileDescription", VER_FILEDESCRIPTION_STR\r
+ VALUE "FileVersion", VER_FILEVERSION_STR BUILD_MACHINE_TAG_PADDED\r
+ VALUE "InternalName", VER_INTERNALNAME_STR\r
+ VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR\r
+ VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR\r
+ VALUE "ProductName", VER_PRODUCTNAME_STR\r
+ VALUE "ProductVersion", VER_PRODUCTVERSION_STR\r
+#ifdef VER_OLESELFREGISTER\r
+ VALUE "OleSelfRegister", "\0"\r
+#endif\r
+ END\r
+\r
+#ifdef VER_ANSICP\r
+ BLOCK VER_VERSION_ANSI_LANG\r
+ BEGIN\r
+ VALUE "CompanyName", VER_COMPANYNAME_STR\r
+ VALUE "FileDescription", VER_FILEDESCRIPTION_STR EXPORT_TAG\r
+ VALUE "FileVersion", VER_FILEVERSION_STR\r
+ VALUE "InternalName", VER_INTERNALNAME_STR\r
+ VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR\r
+ VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR\r
+ VALUE "ProductName", VER_PRODUCTNAME_STR\r
+ VALUE "ProductVersion", VER_PRODUCTVERSION_STR\r
+#ifdef VER_OLESELFREGISTER\r
+ VALUE "OleSelfRegister", "\0"\r
+#endif\r
+ END\r
+#endif\r
+ END\r
+\r
+ BLOCK "VarFileInfo"\r
+ BEGIN\r
+ VALUE "Translation", VER_VERSION_TRANSLATION\r
+ END\r
+END\r
+\r
+#endif\r
--- /dev/null
+/*\r
+ * PROJECT: ReactOS\r
+ * LICENSE: GPL - See COPYING in the top level directory\r
+ * FILE: include/psdk/ntverp.h\r
+ * PURPOSE: Master Version File.\r
+ * This file should be modified only by the official builder\r
+ * to update VERSION, VER_PRODUCTVERSION, VER_PRODUCTVERSION_\r
+ * STR and VER_PRODUCTBETA_STR values.\r
+ * The VER_PRODUCTBUILD lines must contain the product\r
+ * comments and end with the build#<CR><LF>.\r
+ * The VER_PRODUCTBETA_STR lines must contain the product\r
+ * comments and end with "somestring"<CR><LF.\r
+ * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)\r
+ */\r
+\r
+//\r
+// Windows NT Build 3790.1830\r
+//\r
+#define VER_PRODUCTBUILD 3790\r
+#define VER_PRODUCTBUILD_QFE 1830\r
+\r
+//\r
+// Windows NT Version 5.2\r
+//\r
+#define VER_PRODUCTMAJORVERSION 5\r
+#define VER_PRODUCTMINORVERSION 2\r
+#define VER_PRODUCTVERSION_W (0x0502)\r
+#define VER_PRODUCTVERSION_DW (0x05020000 | VER_PRODUCTBUILD)\r
+\r
+//\r
+// Not a beta\r
+//\r
+#define VER_PRODUCTBETA_STR ""\r
+\r
+//\r
+// ANSI String Generating Macros\r
+//\r
+#define VER_PRODUCTVERSION_MAJORMINOR2(x,y) \\r
+ #x "." #y\r
+#define VER_PRODUCTVERSION_MAJORMINOR1(x,y) \\r
+ VER_PRODUCTVERSION_MAJORMINOR2(x, y)\r
+#define VER_PRODUCTVERSION_STRING \\r
+ VER_PRODUCTVERSION_MAJORMINOR1(VER_PRODUCTMAJORVERSION, VER_PRODUCTMINORVERSION)\r
+\r
+//\r
+// Unicode String Generating Macros\r
+//\r
+#define LVER_PRODUCTVERSION_MAJORMINOR2(x,y)\\r
+ L#x L"." L#y\r
+#define LVER_PRODUCTVERSION_MAJORMINOR1(x,y)\\r
+ LVER_PRODUCTVERSION_MAJORMINOR2(x, y)\r
+#define LVER_PRODUCTVERSION_STRING \\r
+ LVER_PRODUCTVERSION_MAJORMINOR1(VER_PRODUCTMAJORVERSION, VER_PRODUCTMINORVERSION)\r
+\r
+//\r
+// Full Product Version\r
+//\r
+#define VER_PRODUCTVERSION \\r
+ VER_PRODUCTMAJORVERSION,VER_PRODUCTMINORVERSION,VER_PRODUCTBUILD,VER_PRODUCTBUILD_QFE\r
+\r
+//\r
+// Padding for ANSI Version String\r
+//\r
+#if (VER_PRODUCTBUILD < 10)\r
+#define VER_BPAD "000"\r
+#elif (VER_PRODUCTBUILD < 100)\r
+#define VER_BPAD "00"\r
+#elif (VER_PRODUCTBUILD < 1000)\r
+#define VER_BPAD "0"\r
+#else\r
+#define VER_BPAD\r
+#endif\r
+\r
+//\r
+// Padding for Unicode Version String\r
+//\r
+#if (VER_PRODUCTBUILD < 10)\r
+#define LVER_BPAD L"000"\r
+#elif (VER_PRODUCTBUILD < 100)\r
+#define LVER_BPAD L"00"\r
+#elif (VER_PRODUCTBUILD < 1000)\r
+#define LVER_BPAD L"0"\r
+#else\r
+#define LVER_BPAD\r
+#endif\r
+\r
+//\r
+// ANSI Product Version String\r
+//\r
+#define VER_PRODUCTVERSION_STR2(x,y) \\r
+ VER_PRODUCTVERSION_STRING "." VER_BPAD #x "." #y\r
+#define VER_PRODUCTVERSION_STR1(x,y) \\r
+ VER_PRODUCTVERSION_STR2(x, y)\r
+#define VER_PRODUCTVERSION_STR \\r
+ VER_PRODUCTVERSION_STR1(VER_PRODUCTBUILD, VER_PRODUCTBUILD_QFE)\r
+\r
+//\r
+// Unicode Product Version String\r
+//\r
+#define LVER_PRODUCTVERSION_STR2(x,y) \\r
+ LVER_PRODUCTVERSION_STRING L"." LVER_BPAD L#x L"." L#y\r
+#define LVER_PRODUCTVERSION_STR1(x,y) \\r
+ LVER_PRODUCTVERSION_STR2(x, y)\r
+#define LVER_PRODUCTVERSION_STR \\r
+ LVER_PRODUCTVERSION_STR1(VER_PRODUCTBUILD, VER_PRODUCTBUILD_QFE)\r
+\r
+//\r
+// Debug Flag\r
+//\r
+#if DBG\r
+#define VER_DEBUG VS_FF_DEBUG\r
+#else\r
+#define VER_DEBUG 0\r
+#endif\r
+\r
+//\r
+// Beta Flag\r
+//\r
+#if BETA\r
+#define VER_PRERELEASE VS_FF_PRERELEASE\r
+#else\r
+#define VER_PRERELEASE 0\r
+#endif\r
+\r
+//\r
+// Internal Flag\r
+//\r
+#if OFFICIAL_BUILD\r
+#define VER_PRIVATE 0\r
+#else\r
+#define VER_PRIVATE VS_FF_PRIVATEBUILD\r
+#endif\r
+\r
+//\r
+// Other Flags\r
+//\r
+#define VER_FILEFLAGSMASK VS_FFI_FILEFLAGSMASK\r
+#define VER_FILEOS VOS_NT_WINDOWS32\r
+#define VER_FILEFLAGS (VER_PRERELEASE | \\r
+ VER_DEBUG | \\r
+ VER_PRIVATE)\r
+\r
+//\r
+// Company and Trademarks\r
+//\r
+#define VER_COMPANYNAME_STR \\r
+ "ReactOS(R) Foundation"\r
+#define VER_PRODUCTNAME_STR \\r
+ "ReactOS(R) Operating System"\r
+#define VER_LEGALTRADEMARKS_STR \\r
+ "ReactOS(R) is a registered trademark of the ReactOS Foundation."\r
#include <debug.h>
//#include <ntoskrnl/cm/newcm.h>
#include "ntoskrnl/cm/cm.h"
+#include <ntverp.h>
/* DATA **********************************************************************/
-#define BUILD_OSCSDVERSION(major, minor) (((major & 0xFF) << 8) | (minor & 0xFF))
-
/* NT Version Info */
-ULONG NtMajorVersion = 5;
-ULONG NtMinorVersion = 0;
-ULONG NtOSCSDVersion = BUILD_OSCSDVERSION(4, 0);
-ULONG NtBuildNumber = KERNEL_VERSION_BUILD;
+ULONG NtMajorVersion = VER_PRODUCTMAJORVERSION;
+ULONG NtMinorVersion = VER_PRODUCTMINORVERSION;
+#if DBG
+ULONG NtBuildNumber = VER_PRODUCTBUILD | 0xC0000000;
+#else
+ULONG NtBuildNumber = VER_PRODUCTBUILD;
+#endif
/* NT System Info */
ULONG NtGlobalFlag;
/* INCLUDES ******************************************************************/
-/* Always target Windows 2003 Service Pack 1 */
+/* Version Data */
+#include <ntverp.h>
#define _WIN32_WINNT _WIN32_WINNT_WS03
#define NTDDI_VERSION NTDDI_WS03SP1
-#define NTKERNELAPI
-#define NOEXTAPI
/* DDK/IFS/NDK Headers */
+#define NTKERNELAPI
+#define NOEXTAPI
#include <ntifs.h>
#undef _KPROCESS
#undef _EPROCESS
#include <pseh/pseh.h>
/* ReactOS Headers */
-#include <reactos/version.h>
-#include <reactos/resource.h>
+#include <reactos/buildno.h>
#include <reactos/bugcodes.h>
-#include <reactos/rossym.h>
#define ExRaiseStatus RtlRaiseStatus
#include <reactos/probe.h>
extern ULONG NtMajorVersion;
extern ULONG NtMinorVersion;
-extern ULONG NtOSCSDVersion;
-extern ULONG NtGlobalFlag;
+extern ULONG CmNtCSDVersion;
+extern ULONG NtBuildNumber;
extern MM_SYSTEMSIZE MmSystemSize;
#define MM_HIGHEST_VAD_ADDRESS \
/* Default Version Data (could get changed below) */
Peb->OSMajorVersion = NtMajorVersion;
Peb->OSMinorVersion = NtMinorVersion;
- Peb->OSBuildNumber = 2195;
+ Peb->OSBuildNumber = (USHORT)(NtBuildNumber & 0x3FFF);
Peb->OSPlatformId = 2; /* VER_PLATFORM_WIN32_NT */
- Peb->OSCSDVersion = NtOSCSDVersion;
+ Peb->OSCSDVersion = CmNtCSDVersion;
/* Heap and Debug Data */
Peb->NumberOfProcessors = KeNumberProcessors;
-/* $Id$ */
+/*
+ * PROJECT: ReactOS
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: ntoskrnl/ntoskrnl.rc
+ * PURPOSE: Kernel Resource File
+ * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
+ */
+#include <winver.h>
+#include <ntverp.h>
-#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Kernel & System\0"
-#define REACTOS_STR_INTERNAL_NAME "ntoskrnl\0"
-#define REACTOS_STR_ORIGINAL_FILENAME "ntoskrnl.exe\0"
-#include <reactos/version.rc>
+//
+// Version Data
+//
+#define VER_FILETYPE VFT_DRV
+#define VER_FILESUBTYPE VFT2_DRV_SYSTEM
+#define VER_FILEDESCRIPTION_STR "NT Kernel & System"
+#define VER_INTERNALNAME_STR "ntoskrnl.exe"
+#define VER_ORIGINALFILENAME_STR "ntoskrnl.exe"
+#define VER_LANGNEUTRAL
+#include "common.ver"
+//
+// Bug Codes and Bitmaps
+//
#include "bugcodes.rc"
-
-1 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/1.bmp"
-2 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/2.bmp"
-3 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/3.bmp"
-4 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/4.bmp"
-5 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/5.bmp"
-6 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/6.bmp"
-7 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/7.bmp"
-8 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/8.bmp"
-13 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/13.bmp"
-14 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/14.bmp"
-15 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/15.bmp"
-16 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/16.bmp"
-17 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/17.bmp"
+1 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/1.bmp"
+2 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/2.bmp"
+3 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/3.bmp"
+4 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/4.bmp"
+5 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/5.bmp"
+6 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/6.bmp"
+7 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/7.bmp"
+8 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/8.bmp"
+13 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/13.bmp"
+14 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/14.bmp"
+15 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/15.bmp"
+16 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/16.bmp"
+17 BITMAP DISCARDABLE "ntoskrnl/inbv/logo/17.bmp"
/* GLOBALS *******************************************************************/
-extern ULONG NtGlobalFlag;
extern ULONG NtMajorVersion;
extern ULONG NtMinorVersion;
-extern ULONG NtOSCSDVersion;
+extern ULONG CmNtCSDVersion;
/* FUNCTIONS *****************************************************************/
lpVersionInformation->dwMinorVersion = NtMinorVersion;
lpVersionInformation->dwBuildNumber = NtBuildNumber;
lpVersionInformation->dwPlatformId = VER_PLATFORM_WIN32_NT;
- if(((NtOSCSDVersion >> 8) & 0xFF) != 0)
+ if(((CmNtCSDVersion >> 8) & 0xFF) != 0)
{
int i = _snwprintf(lpVersionInformation->szCSDVersion,
(sizeof(lpVersionInformation->szCSDVersion) / sizeof(lpVersionInformation->szCSDVersion[0])) - 1,
L"Service Pack %d",
- ((NtOSCSDVersion >> 8) & 0xFF));
+ ((CmNtCSDVersion >> 8) & 0xFF));
lpVersionInformation->szCSDVersion[i] = L'\0';
}
else
if (lpVersionInformation->dwOSVersionInfoSize == sizeof(OSVERSIONINFOEXW))
{
RTL_OSVERSIONINFOEXW *InfoEx = (RTL_OSVERSIONINFOEXW *)lpVersionInformation;
- InfoEx->wServicePackMajor = (USHORT)(NtOSCSDVersion >> 8) & 0xFF;
- InfoEx->wServicePackMinor = (USHORT)(NtOSCSDVersion & 0xFF);
+ InfoEx->wServicePackMajor = (USHORT)(CmNtCSDVersion >> 8) & 0xFF;
+ InfoEx->wServicePackMinor = (USHORT)(CmNtCSDVersion & 0xFF);
InfoEx->wSuiteMask = (USHORT)SharedUserData->SuiteMask;
InfoEx->wProductType = SharedUserData->NtProductType;
}