From e5a4c24966617ad3fe18954972cf06cc9bcce394 Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Wed, 7 Feb 2007 16:31:24 +0000 Subject: [PATCH] - Better fix for LiveCD issue; now it should work no matter what. svn path=/trunk/; revision=25747 --- reactos/ntoskrnl/io/iomgr/arcname.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/reactos/ntoskrnl/io/iomgr/arcname.c b/reactos/ntoskrnl/io/iomgr/arcname.c index 64fd858ed5e..0e7d88cd3de 100644 --- a/reactos/ntoskrnl/io/iomgr/arcname.c +++ b/reactos/ntoskrnl/io/iomgr/arcname.c @@ -33,6 +33,8 @@ IopApplyRosCdromArcHack(IN ULONG i) FILE_BASIC_INFORMATION FileInfo; NTSTATUS Status; PCHAR p, q; + PCONFIGURATION_INFORMATION ConfigInfo = IoGetConfigurationInformation(); + extern BOOLEAN InitIsWinPEMode, ExpInTextModeSetup; /* Only ARC Name left - Build full ARC Name */ p = strstr(KeLoaderBlock->ArcBootDeviceName, "cdrom"); @@ -86,7 +88,7 @@ IopApplyRosCdromArcHack(IN ULONG i) RtlFreeUnicodeString(&DeviceName); } - if (!(strstr(KeLoaderBlock->LoadOptions, "MININT"))) + if (!InitIsWinPEMode) { /* Build the name */ sprintf(p, "cdrom(%lu)", DeviceNumber); @@ -102,13 +104,16 @@ IopApplyRosCdromArcHack(IN ULONG i) } } } + + /* OK, how many disks are there? */ + DeviceNumber += ConfigInfo->DiskCount; /* Return whether this is the CD or not */ - if (DeviceNumber != 1) + if ((InitIsWinPEMode) || (ExpInTextModeSetup)) { /* Hack until IoAssignDriveLetters is fixed */ - swprintf(SharedUserData->NtSystemRoot, L"D:\\reactos"); - return TRUE; + swprintf(SharedUserData->NtSystemRoot, L"%c:\\reactos", 'C' + DeviceNumber); + return TRUE; } /* Failed */