From: Hervé Poussineau Date: Sun, 28 Dec 2014 22:33:17 +0000 (+0000) Subject: [NTOS:IOMGR] When booting from a ramdisk, always assign drive letter X: to it X-Git-Tag: ReactOS-0.3.17-FOSDEM2015~221 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=994d960b815fdc0a5dfe822edc8e28add5ea5ab3 [NTOS:IOMGR] When booting from a ramdisk, always assign drive letter X: to it The only incomplete part to boot the LiveCD from PXE is some support in ramdisk.sys svn path=/trunk/; revision=65868 --- diff --git a/reactos/ntoskrnl/io/iomgr/ramdisk.c b/reactos/ntoskrnl/io/iomgr/ramdisk.c index 658b997df6e..810b106203c 100644 --- a/reactos/ntoskrnl/io/iomgr/ramdisk.c +++ b/reactos/ntoskrnl/io/iomgr/ramdisk.c @@ -249,6 +249,25 @@ IopStartRamdisk(IN PLOADER_PARAMETER_BLOCK LoaderBlock) 0); } + // + // ReactOS hack (drive letter should not be hardcoded, and maybe set by mountmgr.sys) + // + { + ANSI_STRING AnsiPath; + CHAR Buffer[256]; + UNICODE_STRING NtSystemRoot; + UNICODE_STRING DriveLetter = RTL_CONSTANT_STRING(L"\\??\\X:"); + + AnsiPath.Length = sprintf(Buffer, "X:%s", LoaderBlock->NtBootPathName); + AnsiPath.MaximumLength = AnsiPath.Length + 1; + AnsiPath.Buffer = Buffer; + RtlInitEmptyUnicodeString(&NtSystemRoot, + SharedUserData->NtSystemRoot, + sizeof(SharedUserData->NtSystemRoot)); + RtlAnsiStringToUnicodeString(&NtSystemRoot, &AnsiPath, FALSE); + IoCreateSymbolicLink(&DriveLetter, &DeviceString); + } + // // We made it //