- Create ntverp.h and common.ver files. These are the standard files used by the NT/DDK build systems and we should try to support them as well instead of re-defining everything our own way (especially if we want to build ddk-compatible drivers later on).

- 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
This commit is contained in:
Alex Ionescu 2007-02-19 22:28:50 +00:00
parent 1654674e55
commit f42e752565
8 changed files with 417 additions and 41 deletions

View file

@ -44,7 +44,9 @@ extern "C" {
#pragma pack(push,4)
#ifndef VER_PRODUCTBUILD
#define VER_PRODUCTBUILD 10000
#endif
#ifndef NTSYSAPI
#define NTSYSAPI

View file

@ -0,0 +1,207 @@
/*
* PROJECT: ReactOS
* LICENSE: GPL - See COPYING in the top level directory
* FILE: include/psdk/common.ver
* PURPOSE: Common Version File.
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
*/
//
// Copyright Year
//
#ifndef VER_LEGALCOPYRIGHT_YEARS
#define VER_LEGALCOPYRIGHT_YEARS "2007"
#endif
//
// Copyright String
//
#ifndef VER_LEGALCOPYRIGHT_STR
#if defined(RC_INVOKED) && !defined(WIN16)
#define VER_LEGALCOPYRIGHT_STR L"\251 ReactOS Foundation. All rights reserved."
#else
#define VER_LEGALCOPYRIGHT_STR "Copyright (c) ReactOS Foundation. All rights reserved."
#endif
#endif
//
// Product Name String
//
#ifndef VER_PRODUCTNAME_STR
#ifdef RC_INVOKED
#define VER_PRODUCTNAME_STR L"ReactOS\256 Operating System"
#else
#define VER_PRODUCTNAME_STR "ReactOS (R) Operating System"
#endif
#endif
//
// The File Version is the same as the Product Version
//
#ifndef VER_FILEVERSION
#define VER_FILEVERSION VER_PRODUCTVERSION
#endif
#ifndef VER_FILEVERSION_STR
#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR
#endif
//
// If no Original Name was given, use the Internal NAme
//
#ifndef VER_ORIGINALFILENAME_STR
#define VER_ORIGINALFILENAME_STR VER_INTERNALNAME_STR
#endif
//
// Allow tagging a Build by Machine/Date
//
#if defined(__BUILDMACHINE__)
#if defined(__BUILDDATE__)
#define B2(x,y) " (" #x "." #y ")"
#define B1(x,y) B2(x, y)
#define BUILD_MACHINE_TAG B1(__BUILDMACHINE__, __BUILDDATE__)
#else
#define B2(x) " built by: " #x
#define B1(x) B2(x)
#define BUILD_MACHINE_TAG B1(__BUILDMACHINE__)
#endif
#if defined(__BUILDMACHINE_LEN__)
#if __BUILDMACHINE_LEN__ >= 25
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG
#elif __BUILDMACHINE_LEN__ == 24
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 23
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 22
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 21
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 20
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 19
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 18
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 17
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 16
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 15
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 14
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 13
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 12
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 11
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 10
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 9
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 8
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 7
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 6
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 5
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 4
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 3
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 2
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#elif __BUILDMACHINE_LEN__ == 1
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
#else
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG
#endif
#else
#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG
#endif
#else
#define BUILD_MACHINE_TAG
#define BUILD_MACHINE_TAG_PADDED
#endif
//
// Set default neutral Unicode Language ID
//
#ifndef VER_VERSION_UNICODE_LANG
#define VER_VERSION_UNICODE_LANG "000004B0"
#endif
//
// Set default netural ANSI Language ID
//
#ifndef VER_VERSION_ANSI_LANG
#define VER_VERSION_ANSI_LANG "000004E4"
#endif
//
// Set default netural translation ID
//
#ifndef VER_VERSION_TRANSLATION
#define VER_VERSION_TRANSLATION 0x0000, 0x04B0
#endif
//
// Make sure the Resource Compiler called us.
// If so, then build the actual version resource.
//
#ifdef RC_INVOKED
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_PRODUCTVERSION
FILEFLAGSMASK VER_FILEFLAGSMASK
FILEFLAGS VER_FILEFLAGS
FILEOS VER_FILEOS
FILETYPE VER_FILETYPE
FILESUBTYPE VER_FILESUBTYPE
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK VER_VERSION_UNICODE_LANG
BEGIN
VALUE "CompanyName", VER_COMPANYNAME_STR
VALUE "FileDescription", VER_FILEDESCRIPTION_STR
VALUE "FileVersion", VER_FILEVERSION_STR BUILD_MACHINE_TAG_PADDED
VALUE "InternalName", VER_INTERNALNAME_STR
VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR
VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR
VALUE "ProductName", VER_PRODUCTNAME_STR
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
#ifdef VER_OLESELFREGISTER
VALUE "OleSelfRegister", "\0"
#endif
END
#ifdef VER_ANSICP
BLOCK VER_VERSION_ANSI_LANG
BEGIN
VALUE "CompanyName", VER_COMPANYNAME_STR
VALUE "FileDescription", VER_FILEDESCRIPTION_STR EXPORT_TAG
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", VER_INTERNALNAME_STR
VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR
VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR
VALUE "ProductName", VER_PRODUCTNAME_STR
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
#ifdef VER_OLESELFREGISTER
VALUE "OleSelfRegister", "\0"
#endif
END
#endif
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", VER_VERSION_TRANSLATION
END
END
#endif

View file

@ -0,0 +1,151 @@
/*
* PROJECT: ReactOS
* LICENSE: GPL - See COPYING in the top level directory
* FILE: include/psdk/ntverp.h
* PURPOSE: Master Version File.
* This file should be modified only by the official builder
* to update VERSION, VER_PRODUCTVERSION, VER_PRODUCTVERSION_
* STR and VER_PRODUCTBETA_STR values.
* The VER_PRODUCTBUILD lines must contain the product
* comments and end with the build#<CR><LF>.
* The VER_PRODUCTBETA_STR lines must contain the product
* comments and end with "somestring"<CR><LF.
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
*/
//
// Windows NT Build 3790.1830
//
#define VER_PRODUCTBUILD 3790
#define VER_PRODUCTBUILD_QFE 1830
//
// Windows NT Version 5.2
//
#define VER_PRODUCTMAJORVERSION 5
#define VER_PRODUCTMINORVERSION 2
#define VER_PRODUCTVERSION_W (0x0502)
#define VER_PRODUCTVERSION_DW (0x05020000 | VER_PRODUCTBUILD)
//
// Not a beta
//
#define VER_PRODUCTBETA_STR ""
//
// ANSI String Generating Macros
//
#define VER_PRODUCTVERSION_MAJORMINOR2(x,y) \
#x "." #y
#define VER_PRODUCTVERSION_MAJORMINOR1(x,y) \
VER_PRODUCTVERSION_MAJORMINOR2(x, y)
#define VER_PRODUCTVERSION_STRING \
VER_PRODUCTVERSION_MAJORMINOR1(VER_PRODUCTMAJORVERSION, VER_PRODUCTMINORVERSION)
//
// Unicode String Generating Macros
//
#define LVER_PRODUCTVERSION_MAJORMINOR2(x,y)\
L#x L"." L#y
#define LVER_PRODUCTVERSION_MAJORMINOR1(x,y)\
LVER_PRODUCTVERSION_MAJORMINOR2(x, y)
#define LVER_PRODUCTVERSION_STRING \
LVER_PRODUCTVERSION_MAJORMINOR1(VER_PRODUCTMAJORVERSION, VER_PRODUCTMINORVERSION)
//
// Full Product Version
//
#define VER_PRODUCTVERSION \
VER_PRODUCTMAJORVERSION,VER_PRODUCTMINORVERSION,VER_PRODUCTBUILD,VER_PRODUCTBUILD_QFE
//
// Padding for ANSI Version String
//
#if (VER_PRODUCTBUILD < 10)
#define VER_BPAD "000"
#elif (VER_PRODUCTBUILD < 100)
#define VER_BPAD "00"
#elif (VER_PRODUCTBUILD < 1000)
#define VER_BPAD "0"
#else
#define VER_BPAD
#endif
//
// Padding for Unicode Version String
//
#if (VER_PRODUCTBUILD < 10)
#define LVER_BPAD L"000"
#elif (VER_PRODUCTBUILD < 100)
#define LVER_BPAD L"00"
#elif (VER_PRODUCTBUILD < 1000)
#define LVER_BPAD L"0"
#else
#define LVER_BPAD
#endif
//
// ANSI Product Version String
//
#define VER_PRODUCTVERSION_STR2(x,y) \
VER_PRODUCTVERSION_STRING "." VER_BPAD #x "." #y
#define VER_PRODUCTVERSION_STR1(x,y) \
VER_PRODUCTVERSION_STR2(x, y)
#define VER_PRODUCTVERSION_STR \
VER_PRODUCTVERSION_STR1(VER_PRODUCTBUILD, VER_PRODUCTBUILD_QFE)
//
// Unicode Product Version String
//
#define LVER_PRODUCTVERSION_STR2(x,y) \
LVER_PRODUCTVERSION_STRING L"." LVER_BPAD L#x L"." L#y
#define LVER_PRODUCTVERSION_STR1(x,y) \
LVER_PRODUCTVERSION_STR2(x, y)
#define LVER_PRODUCTVERSION_STR \
LVER_PRODUCTVERSION_STR1(VER_PRODUCTBUILD, VER_PRODUCTBUILD_QFE)
//
// Debug Flag
//
#if DBG
#define VER_DEBUG VS_FF_DEBUG
#else
#define VER_DEBUG 0
#endif
//
// Beta Flag
//
#if BETA
#define VER_PRERELEASE VS_FF_PRERELEASE
#else
#define VER_PRERELEASE 0
#endif
//
// Internal Flag
//
#if OFFICIAL_BUILD
#define VER_PRIVATE 0
#else
#define VER_PRIVATE VS_FF_PRIVATEBUILD
#endif
//
// Other Flags
//
#define VER_FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
#define VER_FILEOS VOS_NT_WINDOWS32
#define VER_FILEFLAGS (VER_PRERELEASE | \
VER_DEBUG | \
VER_PRIVATE)
//
// Company and Trademarks
//
#define VER_COMPANYNAME_STR \
"ReactOS(R) Foundation"
#define VER_PRODUCTNAME_STR \
"ReactOS(R) Operating System"
#define VER_LEGALTRADEMARKS_STR \
"ReactOS(R) is a registered trademark of the ReactOS Foundation."

View file

@ -14,16 +14,18 @@
#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;

View file

@ -8,13 +8,14 @@
/* 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
@ -42,10 +43,8 @@
#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>

View file

@ -15,8 +15,8 @@
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 \
@ -329,9 +329,9 @@ MmCreatePeb(PEPROCESS Process)
/* 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;

View file

@ -1,12 +1,28 @@
/* $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"

View file

@ -16,10 +16,9 @@
/* GLOBALS *******************************************************************/
extern ULONG NtGlobalFlag;
extern ULONG NtMajorVersion;
extern ULONG NtMinorVersion;
extern ULONG NtOSCSDVersion;
extern ULONG CmNtCSDVersion;
/* FUNCTIONS *****************************************************************/
@ -47,12 +46,12 @@ RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation)
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
@ -62,8 +61,8 @@ RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation)
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;
}