* FILE: ntoskrnl/ex/init.c
* PURPOSE: Executive Initialization Code
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
- * Eric Kohl (ekohl@rz-online.de)
+ * Eric Kohl
*/
/* INCLUDES ******************************************************************/
/* Allocate the a new buffer since loader memory will be freed */
ExpNlsTableBase = ExAllocatePoolWithTag(NonPagedPool,
ExpNlsTableSize,
- TAG('R', 't', 'l', 'i'));
+ 'iltR');
if (!ExpNlsTableBase) KeBugCheck(PHASE0_INITIALIZATION_FAILED);
/* Copy the codepage data in its new location. */
KernelMode,
&ExpNlsSectionPointer,
NULL);
- ZwClose(NlsSection);
+ ObCloseHandle(NlsSection, KernelMode);
if (!NT_SUCCESS(Status))
{
/* Failed */
RtlCopyMemory(SectionBase, ExpNlsTableBase, ExpNlsTableSize);
/* Free the previously allocated buffer and set the new location */
- ExFreePoolWithTag(ExpNlsTableBase, TAG('R', 't', 'l', 'i'));
+ ExFreePoolWithTag(ExpNlsTableBase, 'iltR');
ExpNlsTableBase = SectionBase;
/* Initialize the NLS Tables */
/* Make sure the buffer is a valid string which within the given length */
if ((NtInitialUserProcessBufferType != REG_SZ) ||
- ((NtInitialUserProcessBufferLength != -1U) &&
+ ((NtInitialUserProcessBufferLength != MAXULONG) &&
((NtInitialUserProcessBufferLength < sizeof(WCHAR)) ||
(NtInitialUserProcessBufferLength >
sizeof(NtInitialUserProcessBuffer) - sizeof(WCHAR)))))
PLDR_DATA_TABLE_ENTRY LdrEntry;
BOOLEAN OverFlow = FALSE;
CHAR NameBuffer[256];
- ANSI_STRING SymbolString;
+ STRING SymbolString;
/* Loop the driver list */
NextEntry = LoaderBlock->LoadOrderListHead.Flink;
/* Check if the buffer was ok */
if (!OverFlow)
{
- /* Initialize the ANSI_STRING for the debugger */
+ /* Initialize the STRING for the debugger */
RtlInitString(&SymbolString, NameBuffer);
/* Load the symbols */
DbgLoadImageSymbols(&SymbolString,
LdrEntry->DllBase,
- 0xFFFFFFFF);
+ (ULONG_PTR)ZwCurrentProcess());
}
}
KeServiceDescriptorTable[0].Count =
ExAllocatePoolWithTag(NonPagedPool,
KiServiceLimit * sizeof(ULONG),
- TAG('C', 'a', 'l', 'l'));
+ 'llaC');
/* Use it for the shadow table too */
KeServiceDescriptorTableShadow[0].Count = KeServiceDescriptorTable[0].Count;
SharedUserData->NtMinorVersion = NtMinorVersion;
/* Set the machine type */
-#if defined(_X86_)
- SharedUserData->ImageNumberLow = IMAGE_FILE_MACHINE_I386;
- SharedUserData->ImageNumberHigh = IMAGE_FILE_MACHINE_I386;
-#elif defined(_PPC_) // <3 Arty
- SharedUserData->ImageNumberLow = IMAGE_FILE_MACHINE_POWERPC;
- SharedUserData->ImageNumberHigh = IMAGE_FILE_MACHINE_POWERPC;
-#elif defined(_MIPS_)
- SharedUserData->ImageNumberLow = IMAGE_FILE_MACHINE_R4000;
- SharedUserData->ImageNumberHigh = IMAGE_FILE_MACHINE_R4000;
-#elif defined(_ARM_)
- SharedUserData->ImageNumberLow = IMAGE_FILE_MACHINE_ARM;
- SharedUserData->ImageNumberHigh = IMAGE_FILE_MACHINE_ARM;
-#elif defined(_AMD64_)
- SharedUserData->ImageNumberLow = IMAGE_FILE_MACHINE_AMD64;
- SharedUserData->ImageNumberHigh = IMAGE_FILE_MACHINE_AMD64;
-#else
-#error "Unsupported ReactOS Target"
-#endif
+ SharedUserData->ImageNumberLow = IMAGE_FILE_MACHINE_ARCHITECTURE;
+ SharedUserData->ImageNumberHigh = IMAGE_FILE_MACHINE_ARCHITECTURE;
}
VOID
PCHAR StringBuffer, EndBuffer, BeginBuffer, MpString = "";
PINIT_BUFFER InitBuffer;
ANSI_STRING TempString;
- ULONG LastTzBias, Size, YearHack = 0, Disposition, MessageCode = 0;
- SIZE_T Length;
+ ULONG LastTzBias, Length, YearHack = 0, Disposition, MessageCode = 0;
+ SIZE_T Size;
PRTL_USER_PROCESS_INFORMATION ProcessInfo;
KEY_VALUE_PARTIAL_INFORMATION KeyPartialInfo;
UNICODE_STRING KeyName, DebugString;
/* Allocate the initialization buffer */
InitBuffer = ExAllocatePoolWithTag(NonPagedPool,
sizeof(INIT_BUFFER),
- TAG('I', 'n', 'i', 't'));
+ 'tinI');
if (!InitBuffer)
{
/* Bugcheck */
StringBuffer = InitBuffer->VersionBuffer;
BeginBuffer = StringBuffer;
EndBuffer = StringBuffer;
- Length = 256;
+ Size = 256;
if (CmCSDVersionString.Length)
{
/* Print the version string */
Status = RtlStringCbPrintfExA(StringBuffer,
255,
&EndBuffer,
- &Length,
+ &Size,
0,
": %wZ",
&CmCSDVersionString);
else
{
/* No version */
- Length = 255;
+ Size = 255;
}
/* Null-terminate the string */
{
/* Create the banner message */
Status = RtlStringCbPrintfA(EndBuffer,
- Length,
+ Size,
MsgEntry->Text,
StringBuffer,
NtBuildNumber & 0xFFFF,
else
{
/* Use hard-coded banner message */
- Status = RtlStringCbCopyA(EndBuffer, Length, "REACTOS (R)\n");
+ Status = RtlStringCbCopyA(EndBuffer, Size, "REACTOS (R)\n");
if (!NT_SUCCESS(Status))
{
/* Bugcheck */
InbvDisplayString(EndBuffer);
/* Initialize Power Subsystem in Phase 0 */
- if (!PoInitSystem(0, AcpiTableDetected)) KeBugCheck(INTERNAL_POWER_ERROR);
+ if (!PoInitSystem(0)) KeBugCheck(INTERNAL_POWER_ERROR);
/* Check for Y2K hack */
Y2KHackRequired = strstr(CommandLine, "YEAR");
if (!ExpRealTimeIsUniversal)
{
/* Check if we don't have a valid bias */
- if (ExpLastTimeZoneBias == -1U)
+ if (ExpLastTimeZoneBias == MAXULONG)
{
/* Reset */
ResetBias = TRUE;
else if (!strncmp(SafeBoot, "NETWORK", 7))
{
/* With Networking */
- InitSafeBootMode = 1;
+ InitSafeBootMode = 2;
SafeBoot += 7;
MessageCode = BOOTING_IN_SAFEMODE_NETWORK;
}
KeyValuePartialInformation,
&KeyPartialInfo,
sizeof(KeyPartialInfo),
- &Size);
+ &Length);
if (!NT_SUCCESS(Status)) AlternateShell = FALSE;
}
InbvUpdateProgressBar(80);
/* Initialize VDM support */
-#ifdef i386
+#if defined(_M_IX86)
KeI386VdmInitialize();
#endif
/* Initialize Power Subsystem in Phase 1*/
- if (!PoInitSystem(1, AcpiTableDetected)) KeBugCheck(INTERNAL_POWER_ERROR);
+ if (!PoInitSystem(1)) KeBugCheck(INTERNAL_POWER_ERROR);
/* Initialize the Process Manager at Phase 1 */
if (!PsInitSystem(LoaderBlock)) KeBugCheck(PROCESS1_INITIALIZATION_FAILED);
ZwClose(ProcessInfo->ProcessHandle);
/* Free the initial process environment */
- Length = 0;
+ Size = 0;
ZwFreeVirtualMemory(NtCurrentProcess(),
(PVOID*)&Environment,
- &Length,
+ &Size,
MEM_RELEASE);
/* Free the initial process parameters */
- Length = 0;
+ Size = 0;
ZwFreeVirtualMemory(NtCurrentProcess(),
(PVOID*)&ProcessParameters,
- &Length,
+ &Size,
MEM_RELEASE);
/* Increase init phase */