- Added more improvements/fixes to the Executive Initialization code:

- We now print out error messages at each SESSIONX_INITIALIZATION_FAILURE directly on the screen.
  - Build CmNtCSDVersion to include SP1 and our SVN Revision number.
  - Build CmNtSpBuildNumber with the actual SP1 build number.
  - Detect Headless Terminal usage.
  - Build and create the CmVersionString.
  - Display a startup banner similar to Windows based on the CmVersionString, also indicating the SVN revision.
  - Fix some bugs in the timezone code.
  - Display a second startup banner like Windows's, displaying memory and CPU counts.
  - Add calls to initialize RANGE_LISTs, the Prefetecher, XIP Support and Phase 2 Executive Initialization.
  - Parse the command line to detect /SAFEBOOT: switch and which type of safe mode boot this is.
  - Display an optional third startup banner showing which safemode boot type this is.
  - Detect /BOOTLOG switch and display a fourth startup banner if it's enabled, but don't initialize boot logging yet.
  - Don't allow driver loading to push the progress bar beyond 75%.
  - Write safe-boot type to registry, detect AlternateShell mode and validate that one is configured.
  - Write MININT key to registry if booting in WinPE (LiveCD) mode.
  - Don't leak smss environment and parameters anymore.
  - Cleanup and reformat some code, use VER_ constants instead of magic numbers.

svn path=/trunk/; revision=26659
This commit is contained in:
Alex Ionescu 2007-05-09 00:44:45 +00:00
parent 0724e3d18e
commit b4e9b56b39
3 changed files with 738 additions and 95 deletions

File diff suppressed because it is too large Load diff

View file

@ -10,6 +10,12 @@ RtlQueryAtomListInAtomTable(
OUT RTL_ATOM *AtomList
);
VOID
NTAPI
RtlInitializeRangeListPackage(
VOID
);
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_NLS_H */
/* EOF */

View file

@ -15,8 +15,30 @@
extern ULONG NtGlobalFlag;
typedef struct _RTL_RANGE_ENTRY
{
LIST_ENTRY Entry;
RTL_RANGE Range;
} RTL_RANGE_ENTRY, *PRTL_RANGE_ENTRY;
PAGED_LOOKASIDE_LIST RtlpRangeListEntryLookasideList;
/* FUNCTIONS *****************************************************************/
VOID
NTAPI
RtlInitializeRangeListPackage(VOID)
{
/* Setup the lookaside list for allocations (not used yet) */
ExInitializePagedLookasideList(&RtlpRangeListEntryLookasideList,
NULL,
NULL,
POOL_COLD_ALLOCATION,
sizeof(RTL_RANGE_ENTRY),
TAG('R', 'R', 'l', 'e'),
16);
}
BOOLEAN
NTAPI
RtlpCheckForActiveDebugger(BOOLEAN Type)