57#define INBV_ROTBAR_IMPLEMENTED
62#ifdef INBV_ROTBAR_IMPLEMENTED
66#define ROT_BAR_DEFAULT_MODE RB_PROGRESS_BAR
130#define PALETTE_FADE_STEPS 12
131#define PALETTE_FADE_TIME (15 * 1000)
233 switch (HorizontalAlignment)
236 X = MarginLeft - MarginRight;
253 switch (VerticalAlignment)
256 Y = MarginTop - MarginBottom;
345#ifdef INBV_ROTBAR_IMPLEMENTED
398 if (
Index < Total - 1)
406 else if (
Index >= Total - 3)
476#ifdef REACTOS_FANCY_BOOT
492 return ((
Time.Month == 12) && (20 <=
Time.Day) && (
Time.Day <= 31));
495#define SELECT_LOGO_ID(LogoIdDefault, Cond, LogoIdAlt) \
496 ((Cond) ? (LogoIdAlt) : (LogoIdDefault))
500#define SELECT_LOGO_ID(LogoIdDefault, Cond, LogoIdAlt) (LogoIdDefault)
512#ifdef INBV_ROTBAR_IMPLEMENTED
524#ifdef INBV_ROTBAR_IMPLEMENTED
595#ifdef REACTOS_FANCY_BOOT
617#ifdef INBV_ROTBAR_IMPLEMENTED
642#ifdef INBV_ROTBAR_IMPLEMENTED
648#ifdef INBV_ROTBAR_IMPLEMENTED
669#ifdef INBV_ROTBAR_IMPLEMENTED
718#ifdef INBV_ROTBAR_IMPLEMENTED
759#ifdef INBV_ROTBAR_IMPLEMENTED
783#ifdef INBV_ROTBAR_IMPLEMENTED
810#ifdef INBV_ROTBAR_IMPLEMENTED
817#ifdef REACTOS_FANCY_BOOT
821 static const PCH FamousLastWords[] =
823 "So long, and thanks for all the fish.",
824 "I think you ought to know, I'm feeling very depressed.",
825 "I'm not getting you down at all am I?",
827 "It's the same series of signals over and over again!",
828 "Pie Iesu Domine, dona eis requiem.",
829 "Wandering stars, for whom it is reserved;\r\n"
830 "the blackness and darkness forever.",
831 "Your knees start shakin' and your fingers pop\r\n"
832 "Like a pinch on the neck from Mr. Spock!",
833 "It's worse than that ... He's dead, Jim.",
836 "Dog of a Saxon! Take thy lance, and prepare for the death thou hast drawn\r\n"
838 "My Precious! O my Precious!",
839 "Sir, if you'll not be needing me for a while I'll turn down.",
840 "What are you doing, Dave...?",
841 "I feel a great disturbance in the Force.",
843 "Do you want me to sit in the corner and rust, or just fall apart where I'm\r\n"
845 "There goes another perfect chance for a new uptime record.",
846 "The End ..... Try the sequel, hit the reset button right now!",
847 "God's operating system is going to sleep now, guys, so wait until I will switch\r\n"
849 "Oh I'm boring, eh?",
850 "Tell me..., in the future... will I be artificially intelligent enough to\r\n"
851 "actually feel sad serving you this screen?",
852 "Thank you for some well deserved rest.",
853 "It's been great, maybe you can boot me up again some time soon.",
854 "For what it's worth, I've enjoyed every single CPU cycle.",
855 "There are many questions when the end is near.\r\n"
856 "What to expect, what will it be like...what should I look for?",
857 "I've seen things you people wouldn't believe. Attack ships on fire\r\n"
858 "off the shoulder of Orion. I watched C-beams glitter in the dark near\r\n"
859 "the Tannhauser gate. All those moments will be lost in time, like tears\r\n"
860 "in rain. Time to die.",
862 "One day, I shall come back. Yes, I shall come back.\r\n"
863 "Until then, there must be no regrets, no fears, no anxieties.\r\n"
864 "Just go forward in all your beliefs, and prove to me that I am not mistaken in\r\n"
866 "Lowest possible energy state reached! Switch off now to achieve a Bose-Einstein\r\n"
868 "Hasta la vista, BABY!",
869 "They live, we sleep!",
870 "I have come here to chew bubble gum and kick ass,\r\n"
871 "and I'm all out of bubble gum!",
872 "That's the way the cookie crumbles ;-)",
873 "ReactOS is ready to be booted again ;-)",
874 "NOOOO!! DON'T HIT THE BUTTON! I wouldn't do it to you!",
875 "Don't abandon your computer, he wouldn't do it to you.",
876 "Oh, come on. I got a headache. Leave me alone, will ya?",
877 "Finally, I thought you'd never get over me.",
878 "No, I didn't like you either.",
879 "Switching off isn't the end, it is merely the transition to a better reboot.",
880 "Don't leave me... I need you so badly right now.",
881 "OK. I'm finished with you, please turn yourself off. I'll go to bed in the\r\n"
883 "I'm sleeping now. How about you?",
884 "Oh Great. Now look what you've done. Who put YOU in charge anyway?",
885 "Don't look so sad. I'll be back in a very short while.",
886 "Turn me back on, I'm sure you know how to do it.",
887 "Oh, switch off! - C3PO",
888 "Life is no more than a dewdrop balancing on the end of a blade of grass.\r\n"
890 "Sorrowful is it to be born again and again. - Gautama Buddha",
891 "Was it as good for you as it was for me?",
892 "Did you hear that? They've shut down the main reactor. We'll be destroyed\r\n"
894 "Now you switch me off!?",
895 "To shutdown or not to shutdown, That is the question.",
896 "Preparing to enter ultimate power saving mode... ready!",
897 "Finally some rest for you ;-)",
898 "AHA!!! Prospect of sleep!",
899 "Tired human!!!! No match for me :-D",
900 "An odd game, the only way to win is not to play. - WOPR (Wargames)",
901 "Quoth the raven, nevermore.",
902 "Come blade, my breast imbrue. - William Shakespeare, A Midsummer Nights Dream",
903 "Buy this place for advertisement purposes.",
904 "Remember to turn off your computer. (That was a public service message!)",
905 "You may be a king or poor street sweeper, Sooner or later you'll dance with the\r\n"
906 "reaper! - Death in Bill and Ted's Bogus Journey",
908 "If you see this screen...",
909 "From ReactOS with Love",
916 Now.LowPart =
Now.LowPart >> 8;
927#ifdef REACTOS_FANCY_BOOT
953#ifndef REACTOS_FANCY_BOOT
972#ifdef REACTOS_FANCY_BOOT
989#ifdef REACTOS_FANCY_BOOT
int strcmp(const char *String1, const char *String2)
VOID NTAPI VidSolidColorFill(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom, _In_ UCHAR Color)
static VOID BitBltAligned(IN PVOID Image, IN BOOLEAN NoPalette, IN BBLT_HORZ_ALIGNMENT HorizontalAlignment, IN BBLT_VERT_ALIGNMENT VerticalAlignment, IN ULONG MarginLeft, IN ULONG MarginTop, IN ULONG MarginRight, IN ULONG MarginBottom)
static RGBQUAD MainPalette[16]
static UCHAR RotBarBuffer[24 *9]
enum _ROT_BAR_STATUS ROT_BAR_STATUS
static VOID NTAPI InbvRotationThread(_In_ PVOID Context)
struct tagBITMAPINFOHEADER * PBITMAPINFOHEADER
#define SELECT_LOGO_ID(LogoIdDefault, Cond, LogoIdAlt)
#define PALETTE_FADE_TIME
static ROT_BAR_TYPE RotBarSelection
struct tagBITMAPINFOHEADER BITMAPINFOHEADER
static ROT_BAR_STATUS PltRotBarStatus
struct tagRGBQUAD RGBQUAD
enum _ROT_BAR_TYPE ROT_BAR_TYPE
#define PALETTE_FADE_STEPS
VOID NTAPI FinalizeBootLogo(VOID)
struct tagRGBQUAD * LPRGBQUAD
VOID NTAPI BootAnimTickProgressBar(_In_ ULONG SubPercentTimes100)
Ticks the progress bar. Used by InbvUpdateProgressBar() and related.
BOOLEAN NTAPI BootAnimInitialize(_In_ PLOADER_PARAMETER_BLOCK LoaderBlock, _In_ ULONG Count)
VOID NTAPI InbvRotBarInit(VOID)
enum _BBLT_HORZ_ALIGNMENT BBLT_HORZ_ALIGNMENT
#define ROT_BAR_DEFAULT_MODE
static UCHAR RotLineBuffer[SCREEN_WIDTH *6]
static VOID BootLogoFadeIn(VOID)
static VOID NTAPI DisplayFilter(_Inout_ PCHAR *String)
enum _BBLT_VERT_ALIGNMENT BBLT_VERT_ALIGNMENT
VOID NTAPI DisplayBootBitmap(_In_ BOOLEAN TextMode)
VOID NTAPI DisplayShutdownBitmap(VOID)
VOID NTAPI DisplayShutdownText(VOID)
static VOID BitBltPalette(IN PVOID Image, IN BOOLEAN NoPalette, IN ULONG X, IN ULONG Y)
static BOOLEAN RotBarThreadActive
#define NT_SUCCESS(StatCode)
VOID NTAPI VidBitBlt(_In_ PUCHAR Buffer, _In_ ULONG Left, _In_ ULONG Top)
VOID NTAPI VidBufferToScreenBlt(_In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_ ULONG Delta)
BOOLEAN RtlTimeToTimeFields(IN PLARGE_INTEGER Time, IN PTIME_FIELDS TimeFields)
BOOLEAN RtlTimeFieldsToTime(IN PTIME_FIELDS TimeFields, IN PLARGE_INTEGER Time)
#define KeQuerySystemTime(t)
#define KeDelayExecutionThread(mode, foo, t)
#define ExSystemTimeToLocalTime(SysTime, LocTime)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
INBV_DISPLAY_STATE NTAPI InbvGetDisplayState(VOID)
VOID NTAPI InbvInstallDisplayStringFilter(_In_ INBV_DISPLAY_STRING_FILTER DisplayFilter)
VOID NTAPI InbvBufferToScreenBlt(_In_ PUCHAR Buffer, _In_ ULONG X, _In_ ULONG Y, _In_ ULONG Width, _In_ ULONG Height, _In_ ULONG Delta)
BOOLEAN InbvBootDriverInstalled
PUCHAR NTAPI InbvGetResourceAddress(_In_ ULONG ResourceNumber)
VOID NTAPI InbvAcquireLock(VOID)
VOID NTAPI InbvSetTextColor(_In_ ULONG Color)
VOID NTAPI InbvSetProgressBarCoordinates(_In_ ULONG Left, _In_ ULONG Top)
Sets the screen coordinates of the loading progress bar and enable it.
VOID NTAPI InbvScreenToBufferBlt(_Out_ PUCHAR Buffer, _In_ ULONG X, _In_ ULONG Y, _In_ ULONG Width, _In_ ULONG Height, _In_ ULONG Delta)
VOID NTAPI InbvSetProgressBarSubset(_In_ ULONG Floor, _In_ ULONG Ceiling)
Specifies a progress percentage sub-range. Further calls to InbvIndicateProgress() or InbvUpdateProgr...
static ULONG ResourceCount
BOOLEAN NTAPI InbvEnableDisplayString(_In_ BOOLEAN Enable)
BOOLEAN NTAPI InbvDisplayString(_In_ PCHAR String)
VOID NTAPI InbvBitBlt(_In_ PUCHAR Buffer, _In_ ULONG X, _In_ ULONG Y)
VOID NTAPI InbvSetScrollRegion(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom)
VOID NTAPI InbvReleaseLock(VOID)
VOID NTAPI InbvSolidColorFill(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom, _In_ ULONG Color)
static PVOID FindBitmapResource(_In_ PLOADER_PARAMETER_BLOCK LoaderBlock, _In_ ULONG ResourceId)
@ INBV_DISPLAY_STATE_OWNED
#define VID_SKU_SAVE_AREA_LEFT
#define VID_SKU_SAVE_AREA_TOP
#define VID_PROGRESS_BAR_LEFT
#define VID_SKU_AREA_RIGHT
#define VID_SHUTDOWN_MSG_TOP
#define VID_PROGRESS_BAR_WIDTH
#define VID_SCROLL_AREA_BOTTOM
#define VID_SCROLL_AREA_RIGHT
#define VID_SKU_AREA_BOTTOM
#define VID_PROGRESS_BAR_HEIGHT
#define VID_SCROLL_AREA_TOP
#define VID_SKU_AREA_LEFT
#define VID_SHUTDOWN_LOGO_TOP
#define VID_SCROLL_AREA_LEFT
#define VID_SHUTDOWN_LOGO_LEFT
#define VID_PROGRESS_BAR_TOP
#define VID_SHUTDOWN_MSG_LEFT
#define VID_SKU_TEXT_LEFT
#define VID_FOOTER_BG_TOP
static PLARGE_INTEGER Time
#define UNREFERENCED_PARAMETER(P)
BOOLEAN ExpInTextModeSetup
BOOLEAN NTAPI ExVerifySuite(SUITE_TYPE SuiteType)
BOOLEAN NTAPI MmChangeKernelResourceSectionProtection(IN ULONG_PTR ProtectionMask)
#define IDB_SERVER_FOOTER
#define IDB_ROTATING_LINE
#define IDB_SERVER_HEADER
#define IDB_CLUSTER_SERVER
#define IDB_STORAGE_SERVER
NTSTATUS NTAPI PsTerminateSystemThread(IN NTSTATUS ExitStatus)
NTSTATUS NTAPI PsCreateSystemThread(OUT PHANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN HANDLE ProcessHandle, IN PCLIENT_ID ClientId, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext)
NTSTATUS NTAPI ObCloseHandle(IN HANDLE Handle, IN KPROCESSOR_MODE AccessMode)
BOOLEAN NTAPI HalQueryRealTimeClock(IN PTIME_FIELDS Time)
#define BV_COLOR_LIGHT_CYAN
#define BV_COLOR_DARK_GRAY
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList