[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.
This commit is contained in:
Hermès Bélusca-Maïto 2019-07-07 00:33:06 +02:00
parent e095695a64
commit a3e22b99a4
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0
4 changed files with 34 additions and 14 deletions

View file

@ -1048,7 +1048,7 @@ DisplayBootBitmap(IN BOOLEAN TextMode)
#ifdef INBV_ROTBAR_IMPLEMENTED #ifdef INBV_ROTBAR_IMPLEMENTED
/* Server product, use appropriate status bar color */ /* Server product, use appropriate status bar color */
Bar = InbvGetResourceAddress(IDB_BAR_SERVER); Bar = InbvGetResourceAddress(IDB_BAR_DEFAULT);
#endif #endif
} }
#else #else

View file

@ -1,26 +1,44 @@
#pragma once #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_BOOT_SCREEN 1
#define IDB_HIBERNATE_BAR 2 #define IDB_HIBERNATE_BAR 2
#define IDB_SHUTDOWN_MSG 3 #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_HEADER 6
#define IDB_WKSTA_FOOTER 7 #define IDB_WKSTA_FOOTER 7
#define IDB_BAR_SERVER 4
#define IDB_BAR_WKSTA 8 #define IDB_BAR_WKSTA 8
#define IDB_BAR_HOME 9 #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_LOGO 13
#define IDB_SERVER_HEADER 14 #define IDB_SERVER_HEADER 14
#define IDB_SERVER_FOOTER 15 #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 #define IDB_MAX_RESOURCE IDB_ROTATING_LINE

View file

@ -31,12 +31,14 @@
IDB_BOOT_SCREEN BITMAP "inbv/logo/1.bmp" IDB_BOOT_SCREEN BITMAP "inbv/logo/1.bmp"
IDB_HIBERNATE_BAR BITMAP "inbv/logo/2.bmp" IDB_HIBERNATE_BAR BITMAP "inbv/logo/2.bmp"
IDB_SHUTDOWN_MSG BITMAP "inbv/logo/3.bmp" IDB_SHUTDOWN_MSG BITMAP "inbv/logo/3.bmp"
IDB_BAR_SERVER BITMAP "inbv/logo/4.bmp" IDB_BAR_DEFAULT BITMAP "inbv/logo/4.bmp"
IDB_DEFAULT_LOGO BITMAP "inbv/logo/5.bmp" IDB_LOGO_DEFAULT BITMAP "inbv/logo/5.bmp"
IDB_WKSTA_HEADER BITMAP "inbv/logo/6.bmp" IDB_WKSTA_HEADER BITMAP "inbv/logo/6.bmp"
IDB_WKSTA_FOOTER BITMAP "inbv/logo/7.bmp" IDB_WKSTA_FOOTER BITMAP "inbv/logo/7.bmp"
IDB_BAR_WKSTA BITMAP "inbv/logo/8.bmp" IDB_BAR_WKSTA BITMAP "inbv/logo/8.bmp"
IDB_SERVER_LOGO BITMAP "inbv/logo/5.bmp" IDB_SERVER_LOGO BITMAP "inbv/logo/5.bmp"
IDB_SERVER_HEADER BITMAP "inbv/logo/14.bmp" IDB_SERVER_HEADER BITMAP "inbv/logo/14.bmp"
IDB_SERVER_FOOTER BITMAP "inbv/logo/15.bmp" IDB_SERVER_FOOTER BITMAP "inbv/logo/15.bmp"
/* ReactOS additions */
IDB_ROTATING_LINE BITMAP "inbv/logo/line.bmp" IDB_ROTATING_LINE BITMAP "inbv/logo/line.bmp"

View file

@ -165,7 +165,7 @@ PopShutdownHandler(VOID)
/* Display shutdown logo and message */ /* Display shutdown logo and message */
Logo1 = InbvGetResourceAddress(IDB_SHUTDOWN_MSG); Logo1 = InbvGetResourceAddress(IDB_SHUTDOWN_MSG);
Logo2 = InbvGetResourceAddress(IDB_DEFAULT_LOGO); Logo2 = InbvGetResourceAddress(IDB_LOGO_DEFAULT);
if ((Logo1) && (Logo2)) if ((Logo1) && (Logo2))
{ {
InbvBitBlt(Logo1, 220, 352); InbvBitBlt(Logo1, 220, 352);