https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a3e22b99a4577c6c2651c…
commit a3e22b99a4577c6c2651cddf01a96899d519f3a1
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Jul 7 00:33:06 2019 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Jul 14 22:23:48 2019 +0200
[NTOS:INBV] Classify the bitmap resources. (#1649)
See "How to change Windows XP boot logo" at
http://www.reversing.be/article.php?story=20061209171938444
as well as the "Boot Editor for WinXP" program for more details.
---
ntoskrnl/inbv/inbv.c | 2 +-
ntoskrnl/include/resource.h | 38 ++++++++++++++++++++++++++++----------
ntoskrnl/ntoskrnl.rc | 6 ++++--
ntoskrnl/po/poshtdwn.c | 2 +-
4 files changed, 34 insertions(+), 14 deletions(-)
diff --git a/ntoskrnl/inbv/inbv.c b/ntoskrnl/inbv/inbv.c
index c1ece52461e..295ffac0142 100644
--- a/ntoskrnl/inbv/inbv.c
+++ b/ntoskrnl/inbv/inbv.c
@@ -1048,7 +1048,7 @@ DisplayBootBitmap(IN BOOLEAN TextMode)
#ifdef INBV_ROTBAR_IMPLEMENTED
/* Server product, use appropriate status bar color */
- Bar = InbvGetResourceAddress(IDB_BAR_SERVER);
+ Bar = InbvGetResourceAddress(IDB_BAR_DEFAULT);
#endif
}
#else
diff --git a/ntoskrnl/include/resource.h b/ntoskrnl/include/resource.h
index 2f7c22b1cc4..bb400bb3151 100644
--- a/ntoskrnl/include/resource.h
+++ b/ntoskrnl/include/resource.h
@@ -1,26 +1,44 @@
#pragma once
+/*
+ * List of all the bitmap overlay resources present in the NT kernel
+ * of Windows XP, Windows Server 2003 and their variations.
+ * See "How to change Windows XP boot logo" at
+ *
http://www.reversing.be/article.php?story=20061209171938444
+ * as well as the "Boot Editor for WinXP" program for more details.
+ */
+
#define IDB_BOOT_SCREEN 1
#define IDB_HIBERNATE_BAR 2
#define IDB_SHUTDOWN_MSG 3
-#define IDB_DEFAULT_LOGO 5
+#define IDB_BAR_DEFAULT 4
+#define IDB_LOGO_DEFAULT 5
+
#define IDB_WKSTA_HEADER 6
#define IDB_WKSTA_FOOTER 7
-#define IDB_BAR_SERVER 4
#define IDB_BAR_WKSTA 8
#define IDB_BAR_HOME 9
-#define IDB_ROTATING_LINE 19
-
-#define IDB_PROF_TEXT 10
-#define IDB_HOME_TEXT 11
-#define IDB_EMBEDDED_TEXT 12
-#define IDB_MCE_TEXT 18
#define IDB_SERVER_LOGO 13
#define IDB_SERVER_HEADER 14
#define IDB_SERVER_FOOTER 15
-#define IDB_STORAGE_SERVER 16
-#define IDB_CLUSTER_SERVER 17
+
+/* Workstation editions Overlays */
+#define IDB_TEXT_PROF 10 // Professional
+#define IDB_TEXT_HOME 11 // Home Edition
+#define IDB_TEXT_EMBEDDED 12 // Embedded
+#define IDB_TEXT_SVRFAMILY 13 // Server Family
+#define IDB_TEXT_DOTNET 16 // .NET 2003
+#define IDB_TEXT_TABLETPC 17 // Tablet PC Edition
+#define IDB_TEXT_MEDIACTR 18 // Media Center Edition
+
+/* Server editions Overlays */
+#define IDB_STORAGE_SERVER 16 // Storage Server
+#define IDB_CLUSTER_SERVER 17 // Compute Cluster Edition
+#define IDB_STORAGE_SERVER2 18
+
+/* ReactOS additions */
+#define IDB_ROTATING_LINE 19
#define IDB_MAX_RESOURCE IDB_ROTATING_LINE
diff --git a/ntoskrnl/ntoskrnl.rc b/ntoskrnl/ntoskrnl.rc
index dbe2caccc02..0a01fe32228 100644
--- a/ntoskrnl/ntoskrnl.rc
+++ b/ntoskrnl/ntoskrnl.rc
@@ -31,12 +31,14 @@
IDB_BOOT_SCREEN BITMAP "inbv/logo/1.bmp"
IDB_HIBERNATE_BAR BITMAP "inbv/logo/2.bmp"
IDB_SHUTDOWN_MSG BITMAP "inbv/logo/3.bmp"
-IDB_BAR_SERVER BITMAP "inbv/logo/4.bmp"
-IDB_DEFAULT_LOGO BITMAP "inbv/logo/5.bmp"
+IDB_BAR_DEFAULT BITMAP "inbv/logo/4.bmp"
+IDB_LOGO_DEFAULT BITMAP "inbv/logo/5.bmp"
IDB_WKSTA_HEADER BITMAP "inbv/logo/6.bmp"
IDB_WKSTA_FOOTER BITMAP "inbv/logo/7.bmp"
IDB_BAR_WKSTA BITMAP "inbv/logo/8.bmp"
IDB_SERVER_LOGO BITMAP "inbv/logo/5.bmp"
IDB_SERVER_HEADER BITMAP "inbv/logo/14.bmp"
IDB_SERVER_FOOTER BITMAP "inbv/logo/15.bmp"
+
+/* ReactOS additions */
IDB_ROTATING_LINE BITMAP "inbv/logo/line.bmp"
diff --git a/ntoskrnl/po/poshtdwn.c b/ntoskrnl/po/poshtdwn.c
index dd9bcc2dbb4..17adbc2a415 100644
--- a/ntoskrnl/po/poshtdwn.c
+++ b/ntoskrnl/po/poshtdwn.c
@@ -165,7 +165,7 @@ PopShutdownHandler(VOID)
/* Display shutdown logo and message */
Logo1 = InbvGetResourceAddress(IDB_SHUTDOWN_MSG);
- Logo2 = InbvGetResourceAddress(IDB_DEFAULT_LOGO);
+ Logo2 = InbvGetResourceAddress(IDB_LOGO_DEFAULT);
if ((Logo1) && (Logo2))
{
InbvBitBlt(Logo1, 220, 352);