67 CHAR ProgressString[256];
92 UiMessageBox(
"Failed to allocate memory for system block!");
105 Extension->MajorVersion = (VersionToBoot & 0xFF00) >> 8;
106 Extension->MinorVersion = (VersionToBoot & 0xFF);
110#if (NTDDI_VERSION >= NTDDI_LONGHORN)
120 *OutLoaderBlock = LoaderBlock;
140 CHAR HalPath[] =
"\\";
153 LastParen =
strrchr(BootPath,
')');
161 TRACE(
"BootOptions: '%s'\n", BootOptions);
167 LoaderBlock->ArcBootDeviceName =
PaToVa(LoaderBlock->ArcBootDeviceName);
174 if (LoaderBlock->SetupLdrBlock)
183 LoaderBlock->SetupLdrBlock =
PaToVa(LoaderBlock->SetupLdrBlock);
189 LoaderBlock->ArcHalDeviceName =
PaToVa(LoaderBlock->ArcHalDeviceName);
194 LoaderBlock->NtBootPathName =
PaToVa(LoaderBlock->NtBootPathName);
199 LoaderBlock->NtHalPathName =
PaToVa(LoaderBlock->NtHalPathName);
204 LoaderBlock->LoadOptions =
PaToVa(LoaderBlock->LoadOptions);
212 for (
i = 0;
i < DiscCount;
i++)
220 ERR(
"Failed to allocate ARC structure! Ignoring remaining ARC disks. (i = %lu, DiskCount = %lu)\n",
232 InsertTailList(&LoaderBlock->ArcDiskInformation->DiskSignatureListHead,
239 List_PaToVa(&LoaderBlock->ArcDiskInformation->DiskSignatureListHead);
240 LoaderBlock->ArcDiskInformation =
PaToVa(LoaderBlock->ArcDiskInformation);
244 LoaderBlock->ConfigurationRoot =
PaToVa(LoaderBlock->ConfigurationRoot);
295 LoaderBlock->Extension =
PaToVa(LoaderBlock->Extension);
297 TRACE(
"WinLdrInitializePhase1() completed\n");
308 CHAR DriverPath[1024];
316 DriverNamePos =
strrchr(DriverPath,
'\\');
317 if (DriverNamePos !=
NULL)
332 TRACE(
"DriverPath: '%s', DllName: '%s', LPB\n", DriverPath, DllName);
349 ERR(
"PeLdrLoadImage('%s') failed\n", DllName);
362 ERR(
"PeLdrAllocateDataTableEntry('%s') failed\n", DllName);
371 (*DriverDTE)->Flags |=
Flags;
379 ERR(
"PeLdrScanImportDescriptorTable('%s') failed\n", FullPath);
410 TRACE(
"BootDriver %wZ DTE %08X RegPath: %wZ\n",
437 ERR(
"Cannot load boot driver '%wZ'!\n", &BootDriver->
FilePath);
485 if (PhysicalBase ==
NULL)
537 CHAR ProgressString[256];
550 ERR(
"PeLdrLoadImage('%s') failed\n",
File);
563 ERR(
"PeLdrAllocateDataTableEntry('%s') failed\n", FullFileName);
608 TRACE(
"PaeEnabled %X, PaeDisabled %X\n", PaeEnabled, PaeDisabled);
643#if defined(_M_IX86) && !defined(UEFIBOOT)
644 {
"PC-98",
"pc98bvid.dll"},
645 {
"Xbox",
"xboxbvid.dll"},
647 {
"EFI",
"lfbbvid.dll"},
670 TRACE(
"ARC System ID: '%s'\n",
Entry->ComponentEntry.Identifier);
675 if (
strstr(
Entry->ComponentEntry.Identifier, BootVidNames[
i].SystemSubId))
694 ULONG ConfigurationDataLength =
695 Entry->ComponentEntry.ConfigurationDataLength;
698 TRACE(
"Display: '%s'\n",
Entry->ComponentEntry.Identifier);
703 if (
Entry->ConfigurationData &&
725 if (DeviceSpecific &&
760 TRACE(
"LoadWindowsCore: BootOptions '%s'\n", BootOptions);
766 FIXME(
"LoadWindowsCore: 3GB - TRUE (not implemented)\n");
777 FIXME(
"LoadWindowsCore: SAFEBOOT - TRUE (not implemented)\n");
785 FIXME(
"LoadWindowsCore: BOOTLOGO - TRUE (not implemented)\n");
791 !LoaderBlock->SetupLdrBlock)
841 if (Option && (OptionLength > 4))
844 Option += 4; OptionLength -= 4;
850 if (Option && (OptionLength > 7))
853 Option += 7; OptionLength -= 7;
860 PaeModeOn = WinLdrIsPaeSupported(OperatingSystemVersion,
865 sizeof(KernelFileName));
866 if (PaeModeOn)
FIXME(
"WinLdrIsPaeSupported: PaeModeOn\n");
869 TRACE(
"HAL file = '%s' ; Kernel file = '%s'\n", HalFileName, KernelFileName);
881 DirPath, KernelFileName,
886 ERR(
"LoadModule('%s') failed\n", KernelFileName);
892 HalBase =
LoadModule(&LoaderBlock->LoadOrderListHead,
893 DirPath, HalFileName,
898 ERR(
"LoadModule('%s') failed\n", HalFileName);
929 if (Option && (OptionLength > 10))
932 Option += 10; OptionLength -= 10;
947 if ((OptionLength == 0) ||
948 ( (OptionLength >= 3) && (
_strnicmp(Option,
"COM", 3) == 0) &&
949 ((OptionLength == 3) || (
'0' <= Option[3] && Option[3] <=
'9')) ))
956 IsCustomKdDll =
TRUE;
961 Option =
"COM"; OptionLength = 3;
965 OptionLength, Option);
969 KdDllBase =
LoadModule(&LoaderBlock->LoadOrderListHead,
979 WARN(
"LoadModule('%s') failed\n", KdDllName);
981 IsCustomKdDll =
FALSE;
984 KdDllBase =
LoadModule(&LoaderBlock->LoadOrderListHead,
994 ERR(
"LoadModule('%s') failed\n", KdDllName);
1004 if (Option && (OptionLength > 8))
1007 Option += 8; OptionLength -= 8;
1010 TRACE(
"User-specified BootVid file: '%s'\n", BootVidName);
1016 BootVidName,
sizeof(BootVidName));
1017 TRACE(
"Auto-detected BootVid file: '%s'\n", BootVidName);
1021 BootVidBase =
LoadModule(&LoaderBlock->LoadOrderListHead,
1022 DirPath, BootVidName,
1029 ERR(
"LoadModule('%s') failed\n", BootVidName);
1060 ERR(
"PeLdrScanImportDescriptorTable('%s') failed\n",
ModuleName);
1096 WCHAR szFileName[80];
1110 WARN(
"Could not open the BiosInfo/Errata registry key (Error %u)\n", (
int)rc);
1119 WARN(
"Could not retrieve the InfName value (Error %u)\n", (
int)rc);
1135 WARN(
"Could not load '%s'\n", ErrataFilePath);
1139 LoaderBlock->Extension->EmInfFileImage =
PaToVa(PhysicalBase);
1140 LoaderBlock->Extension->EmInfFileSize =
FileSize;
1154 PCHAR NewOptions = LoadOptions;
1164 if (NewOptions > LoadOptions)
1165 *NewOptions++ =
' ';
1168 ASSERT(NewOptions <= Option);
1169 if (NewOptions < Option)
1171 NewOptions += OptionLength;
1190 USHORT OperatingSystemVersion;
1198 if (!ArgValue || !*ArgValue)
1200 ERR(
"No 'BootType' value, aborting!\n");
1205 if (
_stricmp(ArgValue,
"Windows") == 0 ||
1206 _stricmp(ArgValue,
"Windows2003") == 0)
1210 else if (
_stricmp(ArgValue,
"WindowsNT40") == 0)
1214 else if (
_stricmp(ArgValue,
"WindowsVista") == 0)
1220 ERR(
"Unknown 'BootType' value '%s', aborting!\n", ArgValue);
1228 ERR(
"No 'SystemPartition' specified, aborting!\n");
1266 if (!*BootPath || BootPath[
strlen(BootPath) - 1] !=
'\\')
1269 TRACE(
"BootPath: '%s'\n", BootPath);
1274 if (ArgValue && *ArgValue)
1276 TRACE(
"BootOptions(1): '%s'\n", BootOptions);
1291 if (ArgValue && *ArgValue)
1304 if (ArgValue && *ArgValue)
1316 TRACE(
"BootOptions(2): '%s'\n", BootOptions);
1344 TRACE(
"SYSTEM hive %s\n", (
Success ?
"loaded" :
"not loaded"));
1350 if (OperatingSystemVersion == 0)
1352 LoaderBlock->
Extension->MajorVersion = (OperatingSystemVersion & 0xFF00) >> 8;
1353 LoaderBlock->
Extension->MinorVersion = (OperatingSystemVersion & 0xFF);
1357 TRACE(
"SYSTEM hive %s\n", (
Success ?
"scanned" :
"not scanned"));
1364 TRACE(
"Firmware Errata file %s\n", (
Success ?
"loaded" :
"not loaded"));
1388 TRACE(
"LoadAndBootWindowsCommon()\n");
1390 ASSERT(OperatingSystemVersion != 0);
1397 LoaderBlock->ConfigurationRoot =
MachHwDetect(BootOptions);
1430 TRACE(
"Boot drivers loading %s\n",
Success ?
"successful" :
"failed");
1448 LoaderBlockVA =
PaToVa(LoaderBlock);
1461 ULONG DebugPortLength = 0;
1463 if (DebugPort !=
NULL && DebugPortLength > 10)
1466 DebugPort += 10; DebugPortLength -= 10;
1471 DebugPort =
"COM"; DebugPortLength = 3;
1475 TuiPrintf(
"You need to connect a debugger on port %.*s\n"
1476 "For more information, visit https://reactos.org/wiki/Debugging.\n",
1477 DebugPortLength, DebugPort);
1495 TRACE(
"Hello from paged mode, KiSystemStartup %p, LoaderBlockVA %p!\n",
1508 (*KiSystemStartup)(LoaderBlockVA);
1544 TRACE(
"BootDriver %wZ DTE %08X RegPath: %wZ\n", &BootDriver->
FilePath,
1563 TRACE(
"ArcDisk %s checksum: 0x%X, signature: 0x%X\n",
PRTL_UNICODE_STRING_BUFFER Path
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 ACPI_STATUS const char UINT32 const char const char * ModuleName
VOID MachPrepareForReactOS(VOID)
PCONFIGURATION_COMPONENT_DATA MachHwDetect(_In_opt_ PCSTR Options)
VOID WinLdrSetProcessorContext(_In_ USHORT OperatingSystemVersion)
void WinLdrSetupMachineDependent(PLOADER_PARAMETER_BLOCK LoaderBlock)
PSTR GetArgumentValue(_In_ ULONG Argc, _In_ PCHAR Argv[], _In_ PCSTR ArgumentName)
PPARTENTRY SystemPartition
ARC_STATUS RamDiskInitialize(IN BOOLEAN InitRamDisk, IN PCSTR LoadOptions OPTIONAL, IN PCSTR DefaultPath OPTIONAL)
#define DBG_DEFAULT_CHANNEL(ch)
ARC_STATUS ArcGetFileInformation(ULONG FileId, FILEINFORMATION *Information)
ARC_STATUS ArcOpen(CHAR *Path, OPENMODE OpenMode, ULONG *FileId)
ARC_STATUS ArcClose(_In_ ULONG FileId)
ARC_STATUS ArcRead(ULONG FileId, VOID *Buffer, ULONG N, ULONG *Count)
VOID MmFreeMemory(PVOID MemoryPointer)
PVOID MmAllocateMemoryWithType(SIZE_T MemorySize, TYPE_OF_MEMORY MemoryType)
PVOID FrLdrHeapAlloc(SIZE_T MemorySize, ULONG Tag)
PFN_NUMBER MmGetLoaderPagesSpanned(VOID)
VOID UiSetProgressBarText(_In_ PCSTR ProgressText)
VOID UiIndicateProgress(VOID)
VOID UiDrawBackdrop(ULONG DrawHeight)
VOID UiUpdateProgressBar(_In_ ULONG Percentage, _In_opt_ PCSTR ProgressText)
VOID UiSetProgressBarSubset(_In_ ULONG Floor, _In_ ULONG Ceiling)
ULONG UiGetScreenHeight(VOID)
VOID UiDrawProgressBarCenter(_In_ PCSTR ProgressText)
VOID UiDrawStatusText(PCSTR StatusText)
VOID UiMessageBox(_In_ PCSTR Format,...)
HKEY CurrentControlSetKey
#define RegCloseKey(hKey)
VOID ConvertConfigToVA(PCONFIGURATION_COMPONENT_DATA Start)
FORCEINLINE PVOID PaToVa(PVOID Pa)
static const WCHAR SystemRoot[]
static const WCHAR Description[]
#define _strnicmp(_String1, _String2, _MaxCount)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP size_t __cdecl strcspn(const char *, const char *)
_ACRTIMP char *__cdecl strstr(const char *, const char *)
_ACRTIMP char *__cdecl strrchr(const char *, int)
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define InitializeListHead(ListHead)
struct _FileName FileName
_Inout_opt_ PUNICODE_STRING Extension
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_ ULONG FileNameLength
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
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
VOID List_PaToVa(_In_ LIST_ENTRY *ListEntry)
VOID AppendBootTimeOptions(_Inout_z_bytecount_(BootOptionsSize) PSTR BootOptions, _In_ SIZE_T BootOptionsSize)
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
#define _Inout_updates_bytes_(s)
#define _Out_writes_bytes_(s)
#define MAX_OPTIONS_LENGTH
VOID(NTAPI * KERNEL_ENTRY_POINT)(PLOADER_PARAMETER_BLOCK LoaderBlock)
BOOLEAN WinLdrSetupMemoryLayout(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock)
BOOLEAN WinLdrInitSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, IN PCSTR SystemRoot, IN BOOLEAN Setup)
BOOLEAN WinLdrScanSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, IN PCSTR SystemRoot)
PCSTR NtLdrGetOption(IN PCSTR Options, IN PCSTR OptionName)
PCSTR NtLdrGetNextOption(IN OUT PCSTR *Options, OUT PULONG OptionLength OPTIONAL)
PCSTR NtLdrGetOptionEx(IN PCSTR Options, IN PCSTR OptionName, OUT PULONG OptionLength OPTIONAL)
DECLSPEC_NORETURN VOID NTAPI KiSystemStartup(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
PCONFIGURATION_COMPONENT_DATA NTAPI KeFindConfigurationEntry(_In_ PCONFIGURATION_COMPONENT_DATA Child, _In_ CONFIGURATION_CLASS Class, _In_ CONFIGURATION_TYPE Type, _In_opt_ PULONG ComponentKey)
NTSTRSAFEAPI RtlStringCbCatA(_Inout_updates_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_ NTSTRSAFE_PCSTR pszSrc)
NTSTRSAFEVAPI RtlStringCbPrintfA(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_ _Printf_format_string_ NTSTRSAFE_PCSTR pszFormat,...)
NTSTRSAFEAPI RtlStringCbCopyNA(_Out_writes_bytes_(cbDest) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_reads_bytes_(cbToCopy) STRSAFE_LPCSTR pszSrc, _In_ size_t cbToCopy)
NTSTRSAFEAPI RtlStringCbCopyA(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_ NTSTRSAFE_PCSTR pszSrc)
#define WINDOWS(string, interface)
BOOLEAN PeLdrScanImportDescriptorTable(IN OUT PLIST_ENTRY ModuleListHead, IN PCCH DirectoryPath, IN PLDR_DATA_TABLE_ENTRY ScanDTE)
VOID PeLdrFreeDataTableEntry(_In_ PLDR_DATA_TABLE_ENTRY Entry)
PVOID PeLdrInitSecurityCookie(_In_ PLDR_DATA_TABLE_ENTRY LdrEntry)
BOOLEAN PeLdrAllocateDataTableEntry(IN OUT PLIST_ENTRY ModuleListHead, IN PCCH BaseDllName, IN PCCH FullDllName, IN PVOID BaseVA, OUT PLDR_DATA_TABLE_ENTRY *NewEntry)
BOOLEAN PeLdrCheckForLoadedDll(_Inout_ PLIST_ENTRY ModuleListHead, _In_ PCSTR DllName, _Out_ PLDR_DATA_TABLE_ENTRY *LoadedEntry)
FLDRAPI PELDR_IMPORTDLL_LOAD_CALLBACK PeLdrImportDllLoadCallback
BOOLEAN PeLdrLoadImage(_In_ PCSTR FilePath, _In_ TYPE_OF_MEMORY MemoryType, _Out_ PVOID *ImageBasePA)
#define CmResourceTypeDeviceSpecific
struct _CM_PARTIAL_RESOURCE_LIST * PCM_PARTIAL_RESOURCE_LIST
struct _LOADER_PARAMETER_EXTENSION LOADER_PARAMETER_EXTENSION
enum _TYPE_OF_MEMORY TYPE_OF_MEMORY
#define KI_USER_SHARED_DATA
#define _WIN32_WINNT_WS03
#define _WIN32_WINNT_WIN2K
#define _WIN32_WINNT_VISTA
ARC_DISK_SIGNATURE DiskSignature
UNICODE_STRING RegistryPath
struct _LDR_DATA_TABLE_ENTRY * LdrEntry
BOOT_DRIVER_LIST_ENTRY ListEntry
ReactOS Framebuffer-specific video device configuration data.
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@384 u
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@384::@393 DeviceSpecificData
struct _LIST_ENTRY * Flink
LIST_ENTRY BootDriverListHead
FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation
LIST_ENTRY LoadOrderListHead
PARC_DISK_INFORMATION ArcDiskInformation
PLOADER_PARAMETER_EXTENSION Extension
LIST_ENTRY MemoryDescriptorListHead
CHAR NtHalPathName[MAX_PATH+1]
ARC_DISK_INFORMATION ArcDiskInformation
CHAR NtBootPathName[MAX_PATH+1]
NLS_DATA_BLOCK NlsDataBlock
LOADER_PARAMETER_EXTENSION Extension
CHAR ArcBootDeviceName[MAX_PATH+1]
HEADLESS_LOADER_BLOCK HeadlessLoaderBlock
LOADER_PARAMETER_BLOCK LoaderBlock
LOADER_PERFORMANCE_DATA LoaderPerformanceData
CHAR ArcHalDeviceName[MAX_PATH+1]
CHAR LoadOptions[MAX_OPTIONS_LENGTH+1]
INT TuiPrintf(_In_ PCSTR Format,...)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define RtlMoveMemory(Destination, Source, Length)
#define CONTAINING_RECORD(address, type, field)
static int Link(const char **args)
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ PWDF_MEMORY_DESCRIPTOR MemoryDescriptor
VOID WinLdrSetupEms(_In_ PCSTR BootOptions)
static BOOLEAN LoadWindowsCore(IN USHORT OperatingSystemVersion, IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, IN PCSTR BootOptions, IN PCSTR BootPath, IN OUT PLDR_DATA_TABLE_ENTRY *KernelDTE)
VOID NtLdrNormalizeOptions(_Inout_ PSTR LoadOptions)
Normalize in-place the NT boot options by removing any leading '/', normalizing TABs to spaces,...
BOOLEAN WinLdrLoadBootDrivers(PLOADER_PARAMETER_BLOCK LoaderBlock, PCSTR BootPath)
VOID WinLdrpDumpArcDisks(PLOADER_PARAMETER_BLOCK LoaderBlock)
BOOLEAN IsAcpiPresent(VOID)
ARC_STATUS LoadAndBootWindows(IN ULONG Argc, IN PCHAR Argv[], IN PCHAR Envp[])
ULONG ArcGetDiskCount(VOID)
VOID WinLdrpDumpMemoryDescriptors(PLOADER_PARAMETER_BLOCK LoaderBlock)
VOID WinLdrpDumpBootDriver(PLOADER_PARAMETER_BLOCK LoaderBlock)
VOID NtLdrOutputLoadMsg(_In_ PCSTR FileName, _In_opt_ PCSTR Description)
static PVOID LoadModule(_Inout_ PLIST_ENTRY LoadOrderListHead, _In_ PCSTR Path, _In_ PCSTR File, _In_ PCSTR ImportName, _In_ TYPE_OF_MEMORY MemoryType, _Out_ PLDR_DATA_TABLE_ENTRY *Dte, _In_ ULONG Percentage)
static VOID NtLdrDetectBootVid(_In_ PCONFIGURATION_COMPONENT_DATA ConfigTree, _Out_writes_bytes_(BootVidNameSize) _Always_(_Post_z_) PSTR BootVidName, _In_ SIZE_T BootVidNameSize)
PVOID WinLdrLoadModule(PCSTR ModuleName, PULONG Size, TYPE_OF_MEMORY MemoryType)
USHORT WinLdrDetectVersion(VOID)
static BOOLEAN WinLdrLoadDeviceDriver(PLIST_ENTRY LoadOrderListHead, PCSTR BootPath, PUNICODE_STRING FilePath, ULONG Flags, PLDR_DATA_TABLE_ENTRY *DriverDTE)
PARC_DISK_SIGNATURE_EX ArcGetDiskInfo(ULONG Index)
static VOID WinLdrInitializePhase1(_In_ USHORT OperatingSystemVersion, _In_ PLOADER_PARAMETER_BLOCK LoaderBlock, _In_ PCSTR BootOptions, _In_ PCSTR SystemPartition, _In_ PCSTR BootPath)
static BOOLEAN WinLdrInitErrataInf(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, IN USHORT OperatingSystemVersion, IN PCSTR SystemRoot)
HEADLESS_LOADER_BLOCK LoaderRedirectionInformation
VOID DumpMemoryAllocMap(VOID)
ARC_STATUS LoadAndBootWindowsCommon(_In_ USHORT OperatingSystemVersion, _In_ PLOADER_PARAMETER_BLOCK LoaderBlock, _In_ PCSTR BootOptions, _In_ PCSTR SystemPartition, _In_ PCSTR BootPath)
PLOADER_SYSTEM_BLOCK WinLdrSystemBlock
static VOID NTAPI NtLdrImportDllLoadCallback(_In_ PCSTR FileName)
VOID AllocateAndInitLPB(IN USHORT VersionToBoot, OUT PLOADER_PARAMETER_BLOCK *OutLoaderBlock)
BOOLEAN WinLdrTerminalConnected
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_Must_inspect_result_ _In_ ULONG Flags