Author: pschweitzer
Date: Sun Dec 28 10:05:29 2014
New Revision: 65856
URL: http://svn.reactos.org/svn/reactos?rev=65856&view=rev
Log:
[NTOSKRNL]
- Implement IopGetDeviceAttachmentBase() which allows getting the base device of the device stack given any device object in it
- Implement IopGetDevicePDO() which returns the physical device object of the device stack given any device object in it
- Implement IopSetDeviceSecurityDescriptor() which will swap the old security descriptor of a device object with a new provided one
- Implement IopSetDeviceSecurityDescriptors() which will swap the old security descriptor with a new provided one in all the device objects from the lowest provided to the uppest provided one.
- Fix a fixme in IopGetSetSecurityObject(), the operation SetSecurityDescriptor is now fully implemented for both PDO & DO.
This is required by VMware driver vmci.sys.
Even though, the installation doesn't get any better; it just changes the BSOD, we now face a memory corruption (in SE).
CORE-7991
Modified:
trunk/reactos/ntoskrnl/io/iomgr/file.c
Modified: trunk/reactos/ntoskrnl/io/iomgr/file.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/file.c?r…
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/file.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/file.c [iso-8859-1] Sun Dec 28 10:05:29 2014
@@ -14,6 +14,8 @@
#include <ntoskrnl.h>
#define NDEBUG
#include <debug.h>
+
+extern ERESOURCE IopSecurityResource;
/* PRIVATE FUNCTIONS *********************************************************/
@@ -1308,6 +1310,174 @@
}
}
+PDEVICE_OBJECT
+NTAPI
+IopGetDeviceAttachmentBase(PDEVICE_OBJECT DeviceObject)
+{
+ PDEVICE_OBJECT PDO = DeviceObject;
+
+ /* Go down the stack to attempt to get the PDO */
+ for (; ((PEXTENDED_DEVOBJ_EXTENSION)PDO->DeviceObjectExtension)->AttachedTo != NULL;
+ PDO = ((PEXTENDED_DEVOBJ_EXTENSION)PDO->DeviceObjectExtension)->AttachedTo);
+
+ return PDO;
+}
+
+PDEVICE_OBJECT
+NTAPI
+IopGetDevicePDO(PDEVICE_OBJECT DeviceObject)
+{
+ KIRQL OldIrql;
+ PDEVICE_OBJECT PDO;
+
+ ASSERT(DeviceObject != NULL);
+
+ OldIrql = KeAcquireQueuedSpinLock(LockQueueIoDatabaseLock);
+ /* Get the base DO */
+ PDO = IopGetDeviceAttachmentBase(DeviceObject);
+ /* Check whether that's really a PDO and if so, keep it */
+ if ((PDO->Flags & DO_BUS_ENUMERATED_DEVICE) != DO_BUS_ENUMERATED_DEVICE)
+ {
+ PDO = NULL;
+ }
+ else
+ {
+ ObReferenceObject(PDO);
+ }
+ KeReleaseQueuedSpinLock(LockQueueIoDatabaseLock, OldIrql);
+
+ return PDO;
+}
+
+NTSTATUS
+NTAPI
+IopSetDeviceSecurityDescriptor(IN PDEVICE_OBJECT DeviceObject,
+ IN PSECURITY_INFORMATION SecurityInformation,
+ IN PSECURITY_DESCRIPTOR SecurityDescriptor,
+ IN POOL_TYPE PoolType,
+ IN PGENERIC_MAPPING GenericMapping)
+{
+ NTSTATUS Status;
+ PSECURITY_DESCRIPTOR OldSecurityDescriptor, CachedSecurityDescriptor, NewSecurityDescriptor;
+
+ PAGED_CODE();
+
+ /* Keep attempting till we find our old SD or fail */
+ while (TRUE)
+ {
+ KeEnterCriticalRegion();
+ ExAcquireResourceSharedLite(&IopSecurityResource, TRUE);
+
+ /* Get our old SD and reference it */
+ OldSecurityDescriptor = DeviceObject->SecurityDescriptor;
+ if (OldSecurityDescriptor != NULL)
+ {
+ ObReferenceSecurityDescriptor(OldSecurityDescriptor, 1);
+ }
+
+ ExReleaseResourceLite(&IopSecurityResource);
+ KeLeaveCriticalRegion();
+
+ /* Set the SD information */
+ NewSecurityDescriptor = OldSecurityDescriptor;
+ Status = SeSetSecurityDescriptorInfo(NULL, SecurityInformation,
+ SecurityDescriptor, &NewSecurityDescriptor,
+ PoolType, GenericMapping);
+
+ if (!NT_SUCCESS(Status))
+ {
+ if (OldSecurityDescriptor != NULL)
+ {
+ ObDereferenceSecurityDescriptor(OldSecurityDescriptor, 1);
+ }
+
+ break;
+ }
+
+ /* Add the new DS to the internal cache */
+ Status = ObLogSecurityDescriptor(NewSecurityDescriptor,
+ &CachedSecurityDescriptor, 1);
+ ExFreePool(NewSecurityDescriptor);
+ if (!NT_SUCCESS(Status))
+ {
+ ObDereferenceSecurityDescriptor(OldSecurityDescriptor, 1);
+ break;
+ }
+
+ KeEnterCriticalRegion();
+ ExAcquireResourceSharedLite(&IopSecurityResource, TRUE);
+ /* Check if someone changed it in our back */
+ if (DeviceObject->SecurityDescriptor == OldSecurityDescriptor)
+ {
+ /* We're clear, do the swap */
+ DeviceObject->SecurityDescriptor = CachedSecurityDescriptor;
+ ExReleaseResourceLite(&IopSecurityResource);
+ KeLeaveCriticalRegion();
+
+ /* And dereference old SD (twice - us + not in use) */
+ ObDereferenceSecurityDescriptor(OldSecurityDescriptor, 2);
+
+ break;
+ }
+ ExReleaseResourceLite(&IopSecurityResource);
+ KeLeaveCriticalRegion();
+
+ /* If so, try again */
+ ObDereferenceSecurityDescriptor(OldSecurityDescriptor, 1);
+ ObDereferenceSecurityDescriptor(CachedSecurityDescriptor, 1);
+ }
+
+ return Status;
+}
+
+NTSTATUS
+NTAPI
+IopSetDeviceSecurityDescriptors(IN PDEVICE_OBJECT UpperDeviceObject,
+ IN PDEVICE_OBJECT PhysicalDeviceObject,
+ IN PSECURITY_INFORMATION SecurityInformation,
+ IN PSECURITY_DESCRIPTOR SecurityDescriptor,
+ IN POOL_TYPE PoolType,
+ IN PGENERIC_MAPPING GenericMapping)
+{
+ PDEVICE_OBJECT CurrentDO = PhysicalDeviceObject, NextDevice;
+ NTSTATUS Status = STATUS_SUCCESS, TmpStatus;
+
+ PAGED_CODE();
+
+ ASSERT(PhysicalDeviceObject != NULL);
+
+ /* We always reference the DO we're working on */
+ ObReferenceObject(CurrentDO);
+
+ /* Go up from PDO to latest DO */
+ do
+ {
+ /* Attempt to set the new SD on it */
+ TmpStatus = IopSetDeviceSecurityDescriptor(CurrentDO, SecurityInformation,
+ SecurityDescriptor, PoolType,
+ GenericMapping);
+ /* Was our last one? Remember that status then */
+ if (CurrentDO == UpperDeviceObject)
+ {
+ Status = TmpStatus;
+ }
+
+ /* Try to move to the next DO (and thus, reference it) */
+ NextDevice = CurrentDO->AttachedDevice;
+ if (NextDevice)
+ {
+ ObReferenceObject(NextDevice);
+ }
+
+ /* Dereference current DO and move to the next one */
+ ObDereferenceObject(CurrentDO);
+ CurrentDO = NextDevice;
+ }
+ while (CurrentDO != NULL);
+
+ return Status;
+}
+
NTSTATUS
NTAPI
IopGetSetSecurityObject(IN PVOID ObjectBody,
@@ -1385,11 +1555,34 @@
/* Return success */
return STATUS_SUCCESS;
}
- else
- {
- DPRINT1("FIXME: Set SD unimplemented for Devices\n");
+ else if (OperationCode == SetSecurityDescriptor)
+ {
+ /* Get the Physical Device Object if any */
+ PDEVICE_OBJECT PDO = IopGetDevicePDO(DeviceObject);
+
+ if (PDO != NULL)
+ {
+ /* Apply the new SD to any DO in the path from PDO to current DO */
+ Status = IopSetDeviceSecurityDescriptors(DeviceObject, PDO,
+ SecurityInformation,
+ SecurityDescriptor,
+ PoolType, GenericMapping);
+ ObDereferenceObject(PDO);
+ }
+ else
+ {
+ /* Otherwise, just set for ourselves */
+ Status = IopSetDeviceSecurityDescriptor(DeviceObject,
+ SecurityInformation,
+ SecurityDescriptor,
+ PoolType, GenericMapping);
+ }
+
return STATUS_SUCCESS;
}
+
+ /* Shouldn't happen */
+ return STATUS_SUCCESS;
}
else if (OperationCode == DeleteSecurityDescriptor)
{
Author: ekohl
Date: Sat Dec 27 12:33:59 2014
New Revision: 65847
URL: http://svn.reactos.org/svn/reactos?rev=65847&view=rev
Log:
[USETUP]
- Re-enable the partition size check and display a warning if the install partition is too small.
- Update the required install partition size to 550MB.
Modified:
trunk/reactos/base/setup/usetup/errorcode.h
trunk/reactos/base/setup/usetup/interface/usetup.c
trunk/reactos/base/setup/usetup/lang/bg-BG.h
trunk/reactos/base/setup/usetup/lang/bn-BD.h
trunk/reactos/base/setup/usetup/lang/cs-CZ.h
trunk/reactos/base/setup/usetup/lang/de-DE.h
trunk/reactos/base/setup/usetup/lang/en-US.h
trunk/reactos/base/setup/usetup/lang/es-ES.h
trunk/reactos/base/setup/usetup/lang/et-EE.h
trunk/reactos/base/setup/usetup/lang/fr-FR.h
trunk/reactos/base/setup/usetup/lang/he-IL.h
trunk/reactos/base/setup/usetup/lang/it-IT.h
trunk/reactos/base/setup/usetup/lang/ja-JP.h
trunk/reactos/base/setup/usetup/lang/lt-LT.h
trunk/reactos/base/setup/usetup/lang/nl-NL.h
trunk/reactos/base/setup/usetup/lang/pl-PL.h
trunk/reactos/base/setup/usetup/lang/pt-BR.h
trunk/reactos/base/setup/usetup/lang/ro-RO.h
trunk/reactos/base/setup/usetup/lang/ru-RU.h
trunk/reactos/base/setup/usetup/lang/sk-SK.h
trunk/reactos/base/setup/usetup/lang/sq-AL.h
trunk/reactos/base/setup/usetup/lang/sv-SE.h
trunk/reactos/base/setup/usetup/lang/tr-TR.h
trunk/reactos/base/setup/usetup/lang/uk-UA.h
trunk/reactos/base/setup/usetup/mui.c
trunk/reactos/base/setup/usetup/mui.h
trunk/reactos/boot/bootdata/txtsetup.sif
Modified: trunk/reactos/base/setup/usetup/errorcode.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/errorcod…
==============================================================================
--- trunk/reactos/base/setup/usetup/errorcode.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/errorcode.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -66,7 +66,7 @@
ERROR_UPDATE_LOCALESETTINGS,
ERROR_ADDING_KBLAYOUTS,
ERROR_UPDATE_GEOID,
- ERROR_INSUFFICIENT_DISKSPACE,
+ ERROR_INSUFFICIENT_PARTITION_SIZE,
ERROR_PARTITION_TABLE_FULL,
ERROR_ONLY_ONE_EXTENDED,
Modified: trunk/reactos/base/setup/usetup/interface/usetup.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/interfac…
==============================================================================
--- trunk/reactos/base/setup/usetup/interface/usetup.c [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/interface/usetup.c [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1425,36 +1425,25 @@
}
-#if 0
static BOOL
IsDiskSizeValid(PPARTENTRY PartEntry)
{
- ULONGLONG m1, m2;
-
- /* check for unpartitioned space */
- m1 = PartEntry->UnpartitionedLength;
- m1 = (m1 + (1 << 19)) >> 20; /* in MBytes (rounded) */
-
- if( m1 > RequiredPartitionDiskSpace)
+ ULONGLONG size;
+
+ size = PartEntry->SectorCount.QuadPart * PartEntry->DiskEntry->BytesPerSector;
+ size = (size + 524288) / 1048576; /* in MBytes */
+
+ if (size < RequiredPartitionDiskSpace)
+ {
+ /* partition is too small so ask for another partion */
+ DPRINT1("Partition is too small (size: %I64u MB), required disk space is %lu MB\n", size, RequiredPartitionDiskSpace);
+ return FALSE;
+ }
+ else
{
return TRUE;
}
-
- /* check for partitioned space */
- m2 = PartEntry->PartInfo[0].PartitionLength.QuadPart;
- m2 = (m2 + (1 << 19)) >> 20; /* in MBytes (rounded) */
- if (m2 < RequiredPartitionDiskSpace)
- {
- /* partition is too small so ask for another partion */
- DPRINT1("Partition is too small(unpartitioned: %I64u MB, partitioned: %I64u MB), required disk space is %lu MB\n", m1, m2, RequiredPartitionDiskSpace);
- return FALSE;
- }
- else
- {
- return TRUE;
- }
-}
-#endif
+}
static PAGE_NUMBER
@@ -1513,17 +1502,17 @@
{
if (AutoPartition)
{
-#if 0
- if (!IsDiskSizeValid(PartitionList->CurrentPartition))
- {
- MUIDisplayError(ERROR_INSUFFICIENT_DISKSPACE, Ir, POPUP_WAIT_ANY_KEY);
- return SELECT_PARTITION_PAGE; /* let the user select another partition */
- }
-#endif
CreatePrimaryPartition(PartitionList,
PartitionList->CurrentPartition->SectorCount.QuadPart,
TRUE);
+ if (!IsDiskSizeValid(PartitionList->CurrentPartition))
+ {
+ MUIDisplayError(ERROR_INSUFFICIENT_PARTITION_SIZE, Ir, POPUP_WAIT_ANY_KEY,
+ RequiredPartitionDiskSpace);
+ return SELECT_PARTITION_PAGE; /* let the user select another partition */
+ }
+
DestinationDriveLetter = (WCHAR)PartitionList->CurrentPartition->DriveLetter;
return SELECT_FILE_SYSTEM_PAGE;
@@ -1531,13 +1520,13 @@
}
else
{
-#if 0
if (!IsDiskSizeValid(PartitionList->CurrentPartition))
{
- MUIDisplayError(ERROR_INSUFFICIENT_DISKSPACE, Ir, POPUP_WAIT_ANY_KEY);
+ MUIDisplayError(ERROR_INSUFFICIENT_PARTITION_SIZE, Ir, POPUP_WAIT_ANY_KEY,
+ RequiredPartitionDiskSpace);
return SELECT_PARTITION_PAGE; /* let the user select another partition */
}
-#endif
+
DestinationDriveLetter = (WCHAR)PartitionList->CurrentPartition->DriveLetter;
return SELECT_FILE_SYSTEM_PAGE;
@@ -1609,13 +1598,6 @@
}
else if (Ir->Event.KeyEvent.wVirtualKeyCode == VK_RETURN) /* ENTER */
{
-#if 0
- if (!IsDiskSizeValid(PartitionList->CurrentPartition))
- {
- MUIDisplayError(ERROR_INSUFFICIENT_DISKSPACE, Ir, POPUP_WAIT_ANY_KEY);
- return SELECT_PARTITION_PAGE; /* let the user select another partition */
- }
-#endif
if (IsContainerPartition(PartitionList->CurrentPartition->PartitionType))
continue; //return SELECT_PARTITION_PAGE;
@@ -1625,6 +1607,13 @@
CreatePrimaryPartition(PartitionList,
0ULL,
TRUE);
+ }
+
+ if (!IsDiskSizeValid(PartitionList->CurrentPartition))
+ {
+ MUIDisplayError(ERROR_INSUFFICIENT_PARTITION_SIZE, Ir, POPUP_WAIT_ANY_KEY,
+ RequiredPartitionDiskSpace);
+ return SELECT_PARTITION_PAGE; /* let the user select another partition */
}
DestinationDriveLetter = (WCHAR)PartitionList->CurrentPartition->DriveLetter;
Modified: trunk/reactos/base/setup/usetup/lang/bg-BG.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/bg-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/bg-BG.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/bg-BG.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1506,8 +1506,10 @@
"ENTER = १ ¯ã᪠¥ ª®¬¯îâêà "
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- " ¨§¡à ¨ï ¤ï« ï¬ ¤®áâ âêç® á¢®¡®¤® ¯à®áâà á⢮.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * â¨á¥â¥ ª« ¢¨è, § ¤ ¯à®¤ê«¦¨â¥.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/bn-BD.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/bn-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/bn-BD.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/bn-BD.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1493,8 +1493,10 @@
"ENTER = Reboot computer"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Not enough free space in the selected partition.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Press any key to continue.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/cs-CZ.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/cs-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/cs-CZ.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/cs-CZ.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1501,8 +1501,10 @@
"ENTER = Restartovat po¡ta"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Na zvolenm odd¡lu nen¡ dost volnho m¡sta.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Pokraujte stisknut¡m libovoln kl vesy.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/de-DE.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/de-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/de-DE.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/de-DE.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1497,9 +1497,10 @@
"EINGABETASTE = Computer neu starten"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Es ist nicht gengend Speicherplatz auf der\n"
- "gewhlten Partition vorhanden.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "Die gewhlten Partition ist nicht groá genug, um ReactOS zu installieren.\n"
+ "Die Installationspartition muss mindestens %lu MB groá sein.\n"
+ "\n"
" * Eine beliebige Taste zum Fortsetzen drcken.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/en-US.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/en-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/en-US.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/en-US.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1493,8 +1493,10 @@
"ENTER = Reboot computer"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Not enough free space in the selected partition.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Press any key to continue.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/es-ES.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/es-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/es-ES.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/es-ES.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1501,8 +1501,10 @@
"ENTER = Reiniciar el equipo"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "No hay suficiente espacio disponible en la partici¢n seleccionada.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Presione una tecla para continuar.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/et-EE.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/et-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/et-EE.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/et-EE.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1491,8 +1491,10 @@
"ENTER = Taaskivita arvuti"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Valitud partitsioonil pole piisavalt ruumi.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Vajuta suvalist klahvi, et jtkata.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/fr-FR.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/fr-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/fr-FR.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/fr-FR.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1506,8 +1506,10 @@
"ENTRE = Redmarrer l'ordinateur"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Pas assez d'espace libre dans la partition slectionne.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Appuyer sur une touche pour continuer.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/he-IL.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/he-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/he-IL.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/he-IL.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1494,8 +1494,10 @@
"ENTER = Reboot computer"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Not enough free space in the selected partition.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Press any key to continue.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/it-IT.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/it-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/it-IT.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/it-IT.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1495,8 +1495,10 @@
"INVIO = Riavviare il computer"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Lo spazio disponibile nella partizione selezionata insufficiente.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Premere un tasto qualsiasi per continuare.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/ja-JP.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/ja-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/ja-JP.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/ja-JP.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1495,8 +1495,10 @@
"ENTER = ºÝËß°ÀÉ »²·ÄÞ³"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Not enough free space in the selected partition.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Press any key to continue.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/lt-LT.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/lt-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/lt-LT.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/lt-LT.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1503,8 +1503,10 @@
"ENTER = Reboot computer"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Not enough free space in the selected partition.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Press any key to continue.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/nl-NL.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/nl-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/nl-NL.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/nl-NL.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1539,8 +1539,10 @@
"ENTER = Computer opnieuw opstarten"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Onvoldoende vrije ruimte in de geselecteerde partitie.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Druk op een toets om door te gaan.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/pl-PL.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/pl-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/pl-PL.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/pl-PL.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1503,8 +1503,10 @@
"ENTER = Restart komputera"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Brak wystarczaj¥cej wolnej przestrzeni w wybranej partycji.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Nacinij dowolny klawisz, aby kontynuowa.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/pt-BR.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/pt-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/pt-BR.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/pt-BR.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1531,8 +1531,10 @@
"ENTER=Reiniciar"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "NÆo h espao suficiente na partiÆo selecionada.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Pressione qualquer tecla para continuar.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/ro-RO.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/ro-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/ro-RO.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/ro-RO.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1570,9 +1570,10 @@
"ENTER = Repornire calculator"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Pe partiîia selectatÇ nu existÇ suficient\n"
- "spaîiu liber."
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Tastaîi pentru a continua.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/ru-RU.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/ru-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/ru-RU.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/ru-RU.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1495,8 +1495,10 @@
"ENTER = Reboot computer"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Not enough free space in the selected partition.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Press any key to continue.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/sk-SK.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/sk-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/sk-SK.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/sk-SK.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1505,8 +1505,10 @@
"ENTER = Reçtart po¡taa"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Na zvolenej part¡cii nie je dostatok vonho miesta.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Pokraujte stlaen¡m ubovonho kl vesu.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/sq-AL.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/sq-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/sq-AL.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/sq-AL.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1498,8 +1498,10 @@
"ENTER = Ristarto kompjuterin"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Jo mjaft hapesir e lir n particionin e przgjedhur.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Shtypni nj tast cfardo pr t vazhduar.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/sv-SE.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/sv-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/sv-SE.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/sv-SE.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1501,8 +1501,10 @@
"ENTER = Starta om datorn"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Inte tillrckligt mycket fritt utrymme p den valda partitionen.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Tryck valfri tangent fr att fortstta.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/tr-TR.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/tr-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/tr-TR.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/tr-TR.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1481,8 +1481,10 @@
"Giri = Bilgisayar Yeniden Balat"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "Seili blmde yeterli bo alan yok.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * Srdrmek iin bir d§meye basnz.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/lang/uk-UA.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/lang/uk-…
==============================================================================
--- trunk/reactos/base/setup/usetup/lang/uk-UA.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/lang/uk-UA.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -1501,8 +1501,10 @@
"ENTER = ¥à¥§ ¢ â ¦¨â¨ ª®¬¯'îâ¥à"
},
{
- //ERROR_INSUFFICIENT_DISKSPACE,
- "¥¤®áâ âì® ¢i«ì®£® ¬iáæï ®¡à ®¬ã à®§¤i«i.\n"
+ //ERROR_INSUFFICIENT_PARTITION_SIZE,
+ "The selected partition is not large enough to install ReactOS.\n"
+ "The install partition must have a size of at least %lu MB.\n"
+ "\n"
" * â¨áiâì ¡ã¤ì-ïªã ª« ¢ièã ¤«ï ¯à®¤®¢¦¥ï.",
NULL
},
Modified: trunk/reactos/base/setup/usetup/mui.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/mui.c?re…
==============================================================================
--- trunk/reactos/base/setup/usetup/mui.c [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/mui.c [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -213,9 +213,12 @@
MUIDisplayError(
IN ULONG ErrorNum,
OUT PINPUT_RECORD Ir,
- IN ULONG WaitEvent)
+ IN ULONG WaitEvent,
+ ...)
{
const MUI_ERROR * entry;
+ CHAR Buffer[2048];
+ va_list ap;
if (ErrorNum >= ERROR_LAST_ERROR_CODE)
{
@@ -237,7 +240,11 @@
return;
}
- PopupError(entry[ErrorNum].ErrorText,
+ va_start(ap, WaitEvent);
+ vsprintf(Buffer, entry[ErrorNum].ErrorText, ap);
+ va_end(ap);
+
+ PopupError(Buffer,
entry[ErrorNum].ErrorStatus,
Ir,
WaitEvent);
Modified: trunk/reactos/base/setup/usetup/mui.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/mui.h?re…
==============================================================================
--- trunk/reactos/base/setup/usetup/mui.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/mui.h [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -69,7 +69,8 @@
MUIDisplayError(
ULONG ErrorNum,
PINPUT_RECORD Ir,
- ULONG WaitEvent);
+ ULONG WaitEvent,
+ ...);
LPCWSTR
MUIDefaultKeyboardLayout(VOID);
Modified: trunk/reactos/boot/bootdata/txtsetup.sif
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/txtsetup.sif…
==============================================================================
--- trunk/reactos/boot/bootdata/txtsetup.sif [iso-8859-1] (original)
+++ trunk/reactos/boot/bootdata/txtsetup.sif [iso-8859-1] Sat Dec 27 12:33:59 2014
@@ -13,7 +13,7 @@
[DiskSpaceRequirements]
; Required free system partition disk space in MB
-FreeSysPartDiskSpace=350
+FreeSysPartDiskSpace=550
[SourceDisksFiles]
acpi.sys=,,,,,,,,,,,,4