mirror of
https://github.com/reactos/reactos.git
synced 2025-07-29 01:22:05 +00:00
[NTOS]
The "BuildLab" string now contains the build number (date + revision number), together with the compiler version used to compile ReactOS. CORE-6611 CORE-7889 CORE-8877 [WIN32K] Now use the "BuildLab" string that is read from the registry to be displayed in the desktop watermark, instead of building it at run-time. Addendum to r71504, CORE-11349 Based on an idea by Mark Jansen (learn_more). svn path=/trunk/; revision=71714
This commit is contained in:
parent
c26e66bc8d
commit
22724e306e
2 changed files with 29 additions and 30 deletions
|
@ -57,7 +57,9 @@ ULONG CmNtCSDVersion;
|
|||
ULONG CmNtCSDReleaseType;
|
||||
UNICODE_STRING CmVersionString;
|
||||
UNICODE_STRING CmCSDVersionString;
|
||||
CHAR NtBuildLab[] = KERNEL_VERSION_BUILD_STR;
|
||||
|
||||
CHAR NtBuildLab[] = KERNEL_VERSION_BUILD_STR "."
|
||||
REACTOS_COMPILER_NAME "_" REACTOS_COMPILER_VERSION;
|
||||
|
||||
/* Init flags and settings */
|
||||
ULONG ExpInitializationPhase;
|
||||
|
|
|
@ -255,12 +255,17 @@ GetSystemVersionString(OUT PWSTR pwszzVersion,
|
|||
NTSTATUS Status;
|
||||
|
||||
RTL_OSVERSIONINFOEXW VerInfo;
|
||||
UNICODE_STRING BuildLabString;
|
||||
UNICODE_STRING CSDVersionString;
|
||||
#if 0
|
||||
UNICODE_STRING CurBuildNmString;
|
||||
#endif
|
||||
RTL_QUERY_REGISTRY_TABLE VersionConfigurationTable[2] =
|
||||
RTL_QUERY_REGISTRY_TABLE VersionConfigurationTable[] =
|
||||
{
|
||||
{
|
||||
NULL,
|
||||
RTL_QUERY_REGISTRY_DIRECT,
|
||||
L"BuildLab",
|
||||
&BuildLabString,
|
||||
REG_NONE, NULL, 0
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
RTL_QUERY_REGISTRY_DIRECT,
|
||||
|
@ -269,19 +274,10 @@ GetSystemVersionString(OUT PWSTR pwszzVersion,
|
|||
REG_NONE, NULL, 0
|
||||
},
|
||||
|
||||
#if 0
|
||||
{
|
||||
NULL,
|
||||
RTL_QUERY_REGISTRY_DIRECT,
|
||||
L"CurrentBuildNumber",
|
||||
&CurBuildNmString,
|
||||
REG_NONE, NULL, 0
|
||||
},
|
||||
#endif
|
||||
|
||||
{0}
|
||||
};
|
||||
|
||||
WCHAR BuildLabBuffer[256];
|
||||
WCHAR VersionBuffer[256];
|
||||
PWCHAR EndBuffer;
|
||||
|
||||
|
@ -295,9 +291,14 @@ GetSystemVersionString(OUT PWSTR pwszzVersion,
|
|||
RtlGetVersion((PRTL_OSVERSIONINFOW)&VerInfo);
|
||||
|
||||
/*
|
||||
* In kernel-mode, szCSDVersion is not initialized. Initialize it
|
||||
* and query its value from the registry.
|
||||
* - Retrieve the BuildLab string from the registry (set by the kernel).
|
||||
* - In kernel-mode, szCSDVersion is not initialized. Initialize it
|
||||
* and query its value from the registry.
|
||||
*/
|
||||
RtlZeroMemory(BuildLabBuffer, sizeof(BuildLabBuffer));
|
||||
RtlInitEmptyUnicodeString(&BuildLabString,
|
||||
BuildLabBuffer,
|
||||
sizeof(BuildLabBuffer));
|
||||
RtlZeroMemory(VerInfo.szCSDVersion, sizeof(VerInfo.szCSDVersion));
|
||||
RtlInitEmptyUnicodeString(&CSDVersionString,
|
||||
VerInfo.szCSDVersion,
|
||||
|
@ -310,9 +311,11 @@ GetSystemVersionString(OUT PWSTR pwszzVersion,
|
|||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
/* Indicate nothing is there */
|
||||
BuildLabString.Length = 0;
|
||||
CSDVersionString.Length = 0;
|
||||
}
|
||||
/* NULL-terminate */
|
||||
/* NULL-terminate the strings */
|
||||
BuildLabString.Buffer[BuildLabString.Length / sizeof(WCHAR)] = UNICODE_NULL;
|
||||
CSDVersionString.Buffer[CSDVersionString.Length / sizeof(WCHAR)] = UNICODE_NULL;
|
||||
|
||||
EndBuffer = VersionBuffer;
|
||||
|
@ -343,11 +346,9 @@ GetSystemVersionString(OUT PWSTR pwszzVersion,
|
|||
/* String for Safe Mode */
|
||||
Status = RtlStringCchPrintfW(pwszzVersion,
|
||||
cchDest,
|
||||
L"ReactOS Version %S %S.%S_%S (NT %u.%u Build %u%s)\n",
|
||||
L"ReactOS Version %S %wZ (NT %u.%u Build %u%s)\n",
|
||||
KERNEL_VERSION_STR,
|
||||
KERNEL_VERSION_BUILD_STR, // Same as the "BuildLab" string in the registry
|
||||
REACTOS_COMPILER_NAME,
|
||||
REACTOS_COMPILER_VERSION,
|
||||
&BuildLabString,
|
||||
SharedUserData->NtMajorVersion,
|
||||
SharedUserData->NtMinorVersion,
|
||||
(VerInfo.dwBuildNumber & 0xFFFF),
|
||||
|
@ -386,12 +387,10 @@ GetSystemVersionString(OUT PWSTR pwszzVersion,
|
|||
Status = RtlStringCchPrintfW(pwszzVersion,
|
||||
cchDest,
|
||||
L"ReactOS Version %S\n"
|
||||
L"Build %S.%S_%S\n"
|
||||
L"Build %wZ\n"
|
||||
L"Reporting NT %u.%u (Build %u%s)\n",
|
||||
KERNEL_VERSION_STR,
|
||||
KERNEL_VERSION_BUILD_STR, // Same as the "BuildLab" string in the registry
|
||||
REACTOS_COMPILER_NAME,
|
||||
REACTOS_COMPILER_VERSION,
|
||||
&BuildLabString,
|
||||
SharedUserData->NtMajorVersion,
|
||||
SharedUserData->NtMinorVersion,
|
||||
(VerInfo.dwBuildNumber & 0xFFFF),
|
||||
|
@ -420,11 +419,9 @@ GetSystemVersionString(OUT PWSTR pwszzVersion,
|
|||
/* Fall-back string */
|
||||
Status = RtlStringCchPrintfW(pwszzVersion,
|
||||
cchDest,
|
||||
L"ReactOS Version %S %S.%S_%S\n",
|
||||
L"ReactOS Version %S %wZ\n",
|
||||
KERNEL_VERSION_STR,
|
||||
KERNEL_VERSION_BUILD_STR, // Same as the "BuildLab" string in the registry
|
||||
REACTOS_COMPILER_NAME,
|
||||
REACTOS_COMPILER_VERSION);
|
||||
&BuildLabString);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
/* General failure, NULL-terminate the string */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue