PLIST_ENTRY ListHead, NextEntry;
PMEMORY_ALLOCATION_DESCRIPTOR MdBlock;
ULONG NlsTablesEncountered = 0;
- SIZE_T NlsTableSizes[3]; /* 3 NLS tables */
+ SIZE_T NlsTableSizes[3] = {0, 0, 0}; /* 3 NLS tables */
/* Check if this is boot-time phase 0 initialization */
if (!ExpInitializationPhase)
NULL,
&SectionSize,
PAGE_READWRITE,
- SEC_COMMIT,
+ SEC_COMMIT | 0x1,
NULL);
if (!NT_SUCCESS(Status))
{
}
/* Copy the codepage data in its new location. */
- ASSERT(SectionBase > MmSystemRangeStart);
+ ASSERT(SectionBase >= MmSystemRangeStart);
RtlCopyMemory(SectionBase, ExpNlsTableBase, ExpNlsTableSize);
/* Free the previously allocated buffer and set the new location */
(PVOID*)&ProcessParams,
0,
&Size,
- MEM_COMMIT,
+ MEM_RESERVE | MEM_COMMIT,
PAGE_READWRITE);
if (!NT_SUCCESS(Status))
{
/* Failed, display error */
- p = InitBuffer->DebugBuffer;
- _snwprintf(p,
- 256 * sizeof(WCHAR),
+ _snwprintf(InitBuffer->DebugBuffer,
+ sizeof(InitBuffer->DebugBuffer)/sizeof(WCHAR),
L"INIT: Unable to allocate Process Parameters. 0x%lx",
Status);
- RtlInitUnicodeString(&DebugString, p);
+ RtlInitUnicodeString(&DebugString, InitBuffer->DebugBuffer);
ZwDisplayString(&DebugString);
/* Bugcheck the system */
&EnvironmentPtr,
0,
&Size,
- MEM_COMMIT,
+ MEM_RESERVE | MEM_COMMIT,
PAGE_READWRITE);
if (!NT_SUCCESS(Status))
{
/* Failed, display error */
- p = InitBuffer->DebugBuffer;
- _snwprintf(p,
- 256 * sizeof(WCHAR),
+ _snwprintf(InitBuffer->DebugBuffer,
+ sizeof(InitBuffer->DebugBuffer)/sizeof(WCHAR),
L"INIT: Unable to allocate Process Environment. 0x%lx",
Status);
- RtlInitUnicodeString(&DebugString, p);
+ RtlInitUnicodeString(&DebugString, InitBuffer->DebugBuffer);
ZwDisplayString(&DebugString);
/* Bugcheck the system */
if (!NT_SUCCESS(Status))
{
/* Failed, display error */
- p = InitBuffer->DebugBuffer;
- _snwprintf(p,
- 256 * sizeof(WCHAR),
+ _snwprintf(InitBuffer->DebugBuffer,
+ sizeof(InitBuffer->DebugBuffer)/sizeof(WCHAR),
L"INIT: Unable to create Session Manager. 0x%lx",
Status);
- RtlInitUnicodeString(&DebugString, p);
+ RtlInitUnicodeString(&DebugString, InitBuffer->DebugBuffer);
ZwDisplayString(&DebugString);
/* Bugcheck the system */
if (!NT_SUCCESS(Status))
{
/* Failed, display error */
- p = InitBuffer->DebugBuffer;
- _snwprintf(p,
- 256 * sizeof(WCHAR),
+ _snwprintf(InitBuffer->DebugBuffer,
+ sizeof(InitBuffer->DebugBuffer)/sizeof(WCHAR),
L"INIT: Unable to resume Session Manager. 0x%lx",
Status);
- RtlInitUnicodeString(&DebugString, p);
+ RtlInitUnicodeString(&DebugString, InitBuffer->DebugBuffer);
ZwDisplayString(&DebugString);
/* Bugcheck the system */
ExpInitializePushLocks();
/* Initialize events and event pairs */
- ExpInitializeEventImplementation();
- ExpInitializeEventPairImplementation();
-
- /* Initialize callbacks */
- ExpInitializeCallbacks();
-
+ if (ExpInitializeEventImplementation() == FALSE)
+ {
+ DPRINT1("Executive: Event initialization failed\n");
+ return FALSE;
+ }
+ if (ExpInitializeEventPairImplementation() == FALSE)
+ {
+ DPRINT1("Executive: Event Pair initialization failed\n");
+ return FALSE;
+ }
+
/* Initialize mutants */
- ExpInitializeMutantImplementation();
-
+ if (ExpInitializeMutantImplementation() == FALSE)
+ {
+ DPRINT1("Executive: Mutant initialization failed\n");
+ return FALSE;
+ }
+
+ /* Initialize callbacks */
+ if (ExpInitializeCallbacks() == FALSE)
+ {
+ DPRINT1("Executive: Callback initialization failed\n");
+ return FALSE;
+ }
+
/* Initialize semaphores */
- ExpInitializeSemaphoreImplementation();
-
+ if (ExpInitializeSemaphoreImplementation() == FALSE)
+ {
+ DPRINT1("Executive: Semaphore initialization failed\n");
+ return FALSE;
+ }
+
/* Initialize timers */
- ExpInitializeTimerImplementation();
-
+ if (ExpInitializeTimerImplementation() == FALSE)
+ {
+ DPRINT1("Executive: Timer initialization failed\n");
+ return FALSE;
+ }
+
/* Initialize profiling */
- ExpInitializeProfileImplementation();
-
+ if (ExpInitializeProfileImplementation() == FALSE)
+ {
+ DPRINT1("Executive: Profile initialization failed\n");
+ return FALSE;
+ }
+
/* Initialize UUIDs */
ExpInitUuids();
-
+
+ /* Initialize keyed events */
+ if (ExpInitializeKeyedEventImplementation() == FALSE)
+ {
+ DPRINT1("Executive: Keyed event initialization failed\n");
+ return FALSE;
+ }
+
/* Initialize Win32K */
- ExpWin32kInit();
+ if (ExpWin32kInit() == FALSE)
+ {
+ DPRINT1("Executive: Win32 initialization failed\n");
+ return FALSE;
+ }
return TRUE;
}
/* Load the symbols */
DbgLoadImageSymbols(&SymbolString,
LdrEntry->DllBase,
- (ULONG_PTR)ZwCurrentProcess());
+ (ULONG_PTR)PsGetCurrentProcessId());
}
}
PLIST_ENTRY ListEntry;
PMEMORY_ALLOCATION_DESCRIPTOR MemDescriptor;
- DPRINT1("Burn RAM amount: %d pages\n", PagesToDestroy);
+ DPRINT1("Burn RAM amount: %lu pages\n", PagesToDestroy);
/* Loop the memory descriptors, beginning at the end */
for (ListEntry = LoaderBlock->MemoryDescriptorListHead.Blink;
CmGetSystemControlValues(LoaderBlock->RegistryBase, CmControlVector);
/* Load static defaults for Service Pack 1 and add our SVN revision */
+ /* Format of CSD : SPMajor - SPMinor */
CmNtCSDVersion = 0x100 | (KERNEL_VERSION_BUILD_HEX << 16);
CmNtCSDReleaseType = 0;
/* Set Service Pack data for Service Pack 1 */
- CmNtSpBuildNumber = 1830;
+ CmNtSpBuildNumber = VER_PRODUCTBUILD_QFE;
if (!(CmNtCSDVersion & 0xFFFF0000))
{
/* Check the release type */
- if (CmNtCSDReleaseType == 1) CmNtSpBuildNumber |= 1830 << 16;
+ if (CmNtCSDReleaseType == 1) CmNtSpBuildNumber |= VER_PRODUCTBUILD_QFE << 16;
}
/* Add loaded CmNtGlobalFlag value */
/* Add the version format string */
Status = RtlStringCbPrintfA(RcEnd,
Remaining,
- "v. %u",
+ "r%u",
(CmNtCSDVersion & 0xFFFF0000) >> 16);
if (!NT_SUCCESS(Status))
{
SharedUserData->ImageNumberHigh = IMAGE_FILE_MACHINE_NATIVE;
}
+VOID
+NTAPI
+MmFreeLoaderBlock(IN PLOADER_PARAMETER_BLOCK LoaderBlock);
+
VOID
NTAPI
INIT_FUNCTION
else
{
/* Use hard-coded banner message */
- Status = RtlStringCbCopyA(EndBuffer, Remaining, "REACTOS (R)\n");
+ Status = RtlStringCbCopyA(EndBuffer, Remaining, "REACTOS (R)\r\n");
if (!NT_SUCCESS(Status))
{
/* Bugcheck */
sizeof(InitBuffer->VersionBuffer),
NT_SUCCESS(MsgStatus) ?
(PCHAR)MsgEntry->Text :
- "%u System Processor [%u MB Memory] %Z\n",
+ "%u System Processor [%u MB Memory] %Z\r\n",
KeNumberProcessors,
Size,
&TempString);
/* Make sure nobody touches the loader block again */
if (LoaderBlock == KeLoaderBlock) KeLoaderBlock = NULL;
+ MmFreeLoaderBlock(LoaderBlock);
LoaderBlock = Context = NULL;
/* Update progress bar */