Show warning screen at the end of setup, telling the user to wait until

the disk has been flushed. Fixes bug #110.

svn path=/trunk/; revision=7798
This commit is contained in:
Gé van Geldorp 2004-01-20 23:39:06 +00:00
parent b95a905321
commit 8cd9e295fc

View file

@ -76,6 +76,7 @@ typedef enum _PAGE_NUMBER
SUCCESS_PAGE,
QUIT_PAGE,
FLUSH_PAGE,
REBOOT_PAGE, /* virtual page */
} PAGE_NUMBER, *PPAGE_NUMBER;
@ -3368,7 +3369,7 @@ QuitPage(PINPUT_RECORD Ir)
if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
{
return(REBOOT_PAGE);
return(FLUSH_PAGE);
}
}
}
@ -3388,7 +3389,7 @@ SuccessPage(PINPUT_RECORD Ir)
if (IsUnattendedSetup)
{
return(REBOOT_PAGE);
return(FLUSH_PAGE);
}
while(TRUE)
@ -3397,12 +3398,26 @@ SuccessPage(PINPUT_RECORD Ir)
if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
{
return(REBOOT_PAGE);
return(FLUSH_PAGE);
}
}
}
static PAGE_NUMBER
FlushPage(PINPUT_RECORD Ir)
{
SetTextXY(10, 6, "The system is now making sure all data is stored on your disk");
SetTextXY(10, 8, "This may take a minute");
SetTextXY(10, 9, "When finished, your computer will reboot automatically");
SetStatusText(" Flushing cache");
return(REBOOT_PAGE);
}
VOID STDCALL
NtProcessStartup(PPEB Peb)
{
@ -3533,6 +3548,10 @@ NtProcessStartup(PPEB Peb)
Page = SuccessPage(&Ir);
break;
case FLUSH_PAGE:
Page = FlushPage(&Ir);
break;
case QUIT_PAGE:
Page = QuitPage(&Ir);
break;