[USETUP]
authorEric Kohl <eric.kohl@reactos.org>
Tue, 20 May 2014 23:48:36 +0000 (23:48 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Tue, 20 May 2014 23:48:36 +0000 (23:48 +0000)
- Implement creation of extended partitions.
- Add creation checks for primary and extended partitions.

svn path=/trunk/; revision=63392

28 files changed:
reactos/base/setup/usetup/errorcode.h
reactos/base/setup/usetup/interface/usetup.c
reactos/base/setup/usetup/lang/bg-BG.h
reactos/base/setup/usetup/lang/cs-CZ.h
reactos/base/setup/usetup/lang/de-DE.h
reactos/base/setup/usetup/lang/el-GR.h
reactos/base/setup/usetup/lang/en-US.h
reactos/base/setup/usetup/lang/es-ES.h
reactos/base/setup/usetup/lang/et-EE.h
reactos/base/setup/usetup/lang/fr-FR.h
reactos/base/setup/usetup/lang/he-IL.h
reactos/base/setup/usetup/lang/it-IT.h
reactos/base/setup/usetup/lang/ja-JP.h
reactos/base/setup/usetup/lang/lt-LT.h
reactos/base/setup/usetup/lang/nl-NL.h
reactos/base/setup/usetup/lang/pl-PL.h
reactos/base/setup/usetup/lang/pt-BR.h
reactos/base/setup/usetup/lang/ro-RO.h
reactos/base/setup/usetup/lang/ru-RU.h
reactos/base/setup/usetup/lang/sk-SK.h
reactos/base/setup/usetup/lang/sq-AL.h
reactos/base/setup/usetup/lang/sv-SE.h
reactos/base/setup/usetup/lang/tr-TR.h
reactos/base/setup/usetup/lang/uk-UA.h
reactos/base/setup/usetup/mui.h
reactos/base/setup/usetup/partlist.c
reactos/base/setup/usetup/partlist.h
reactos/base/setup/usetup/usetup.h

index 8bb5a43..0acfbd6 100644 (file)
@@ -28,7 +28,8 @@
 
 typedef enum
 {
-    ERROR_NOT_INSTALLED = 0,
+    NOT_AN_ERROR = 0,
+    ERROR_NOT_INSTALLED,
     ERROR_NO_HDD,
     ERROR_NO_SOURCE_DRIVE,
     ERROR_LOAD_TXTSETUPSIF,
@@ -67,6 +68,12 @@ typedef enum
     ERROR_UPDATE_GEOID,
     ERROR_INSUFFICIENT_DISKSPACE,
 
+    ERROR_PARTITION_TABLE_FULL,
+    ERROR_ONLY_ONE_EXTENDED,
+    ERROR_NOT_BEHIND_EXTENDED,
+    ERROR_EXTENDED_NOT_LAST,
+
+
     ERROR_LAST_ERROR_CODE
 }ERROR_NUMBER;
 
index c0c597e..af5e16f 100644 (file)
@@ -1463,12 +1463,14 @@ IsDiskSizeValid(PPARTENTRY PartEntry)
 static PAGE_NUMBER
 SelectPartitionPage(PINPUT_RECORD Ir)
 {
+    ULONG Error;
+
     MUIDisplayPage(SELECT_PARTITION_PAGE);
 
     if (PartitionList == NULL)
     {
         PartitionList = CreatePartitionList(2,
-                                            19,
+                                            21,
                                             xScreen - 3,
                                             yScreen - 3);
         if (PartitionList == NULL)
@@ -1521,9 +1523,9 @@ SelectPartitionPage(PINPUT_RECORD Ir)
                     return SELECT_PARTITION_PAGE; /* let the user select another partition */
                 }
 #endif
-                CreateNewPartition(PartitionList,
-                                   PartitionList->CurrentPartition->SectorCount.QuadPart,
-                                   TRUE);
+                CreatePrimaryPartition(PartitionList,
+                                       PartitionList->CurrentPartition->SectorCount.QuadPart,
+                                       TRUE);
 
                 DestinationDriveLetter = (WCHAR)PartitionList->CurrentPartition->DriveLetter;
 
@@ -1553,6 +1555,10 @@ SelectPartitionPage(PINPUT_RECORD Ir)
         {
             CONSOLE_SetStatusText(MUIGetString(STRING_INSTALLCREATEPARTITION));
         }
+        else if (IsContainerPartition(PartitionList->CurrentPartition->PartitionType))
+        {
+            CONSOLE_SetStatusText(MUIGetString(STRING_DELETEPARTITION));
+        }
         else
         {
             CONSOLE_SetStatusText(MUIGetString(STRING_INSTALLDELETEPARTITION));
@@ -1591,27 +1597,42 @@ SelectPartitionPage(PINPUT_RECORD Ir)
                 return SELECT_PARTITION_PAGE; /* let the user select another partition */
             }
 #endif
+            if (IsContainerPartition(PartitionList->CurrentPartition->PartitionType))
+                continue; //return SELECT_PARTITION_PAGE;
+
             if (PartitionList->CurrentPartition == NULL ||
                 PartitionList->CurrentPartition->IsPartitioned == FALSE)
             {
-                CreateNewPartition(PartitionList,
-                                   0ULL,
-                                   TRUE);
+                CreatePrimaryPartition(PartitionList,
+                                       0ULL,
+                                       TRUE);
             }
 
             DestinationDriveLetter = (WCHAR)PartitionList->CurrentPartition->DriveLetter;
 
             return SELECT_FILE_SYSTEM_PAGE;
         }
-        else if (Ir->Event.KeyEvent.wVirtualKeyCode == 'C')  /* C */
+        else if (Ir->Event.KeyEvent.wVirtualKeyCode == 'P')  /* P */
+        {
+            Error = PrimaryPartitionCreationChecks(PartitionList);
+            if (Error != NOT_AN_ERROR)
+            {
+                MUIDisplayError(Error, Ir, POPUP_WAIT_ANY_KEY);
+                return SELECT_PARTITION_PAGE;
+            }
+
+            return CREATE_PRIMARY_PARTITION_PAGE;
+        }
+        else if (Ir->Event.KeyEvent.wVirtualKeyCode == 'E')  /* E */
         {
-            if (PartitionList->CurrentPartition->IsPartitioned == TRUE)
+            Error = ExtendedPartitionCreationChecks(PartitionList);
+            if (Error != NOT_AN_ERROR)
             {
-                MUIDisplayError(ERROR_NEW_PARTITION, Ir, POPUP_WAIT_ANY_KEY);
+                MUIDisplayError(Error, Ir, POPUP_WAIT_ANY_KEY);
                 return SELECT_PARTITION_PAGE;
             }
 
-            return CREATE_PARTITION_PAGE;
+            return CREATE_EXTENDED_PARTITION_PAGE;
         }
         else if (Ir->Event.KeyEvent.wVirtualKeyCode == 'D')  /* D */
         {
@@ -1773,7 +1794,7 @@ ShowPartitionSizeInputBox(SHORT Left,
 
 
 static PAGE_NUMBER
-CreatePartitionPage(PINPUT_RECORD Ir)
+CreatePrimaryPartitionPage(PINPUT_RECORD Ir)
 {
     PDISKENTRY DiskEntry;
     PPARTENTRY PartEntry;
@@ -1907,15 +1928,161 @@ CreatePartitionPage(PINPUT_RECORD Ir)
 
             DPRINT ("Partition size: %I64u bytes\n", PartSize);
 
-            CreateNewPartition(PartitionList,
-                               SectorCount,
-                               FALSE);
+            CreatePrimaryPartition(PartitionList,
+                                   SectorCount,
+                                   FALSE);
 
             return SELECT_PARTITION_PAGE;
         }
     }
 
-    return CREATE_PARTITION_PAGE;
+    return CREATE_PRIMARY_PARTITION_PAGE;
+}
+
+
+static PAGE_NUMBER
+CreateExtendedPartitionPage(PINPUT_RECORD Ir)
+{
+    PDISKENTRY DiskEntry;
+    PPARTENTRY PartEntry;
+    BOOLEAN Quit;
+    BOOLEAN Cancel;
+    CHAR InputBuffer[50];
+    ULONG MaxSize;
+    ULONGLONG PartSize;
+    ULONGLONG DiskSize;
+    ULONGLONG SectorCount;
+    PCHAR Unit;
+
+    if (PartitionList == NULL ||
+        PartitionList->CurrentDisk == NULL ||
+        PartitionList->CurrentPartition == NULL)
+    {
+        /* FIXME: show an error dialog */
+        return QUIT_PAGE;
+    }
+
+    DiskEntry = PartitionList->CurrentDisk;
+    PartEntry = PartitionList->CurrentPartition;
+
+    CONSOLE_SetStatusText(MUIGetString(STRING_PLEASEWAIT));
+
+    CONSOLE_SetTextXY(6, 8, MUIGetString(STRING_CHOOSE_NEW_EXTENDED_PARTITION));
+
+    DiskSize = DiskEntry->SectorCount.QuadPart * DiskEntry->BytesPerSector;
+#if 0
+    if (DiskSize >= 10737418240) /* 10 GB */
+    {
+        DiskSize = DiskSize / 1073741824;
+        Unit = MUIGetString(STRING_GB);
+    }
+    else
+#endif
+    {
+        DiskSize = DiskSize / 1048576;
+        if (DiskSize == 0)
+            DiskSize = 1;
+
+        Unit = MUIGetString(STRING_MB);
+    }
+
+    if (DiskEntry->DriverName.Length > 0)
+    {
+        CONSOLE_PrintTextXY(6, 10,
+                            MUIGetString(STRING_HDINFOPARTCREATE),
+                            DiskSize,
+                            Unit,
+                            DiskEntry->DiskNumber,
+                            DiskEntry->Port,
+                            DiskEntry->Bus,
+                            DiskEntry->Id,
+                            &DiskEntry->DriverName);
+    }
+    else
+    {
+        CONSOLE_PrintTextXY(6, 10,
+                            MUIGetString(STRING_HDDINFOUNK1),
+                            DiskSize,
+                            Unit,
+                            DiskEntry->DiskNumber,
+                            DiskEntry->Port,
+                            DiskEntry->Bus,
+                            DiskEntry->Id);
+    }
+
+    CONSOLE_SetTextXY(6, 12, MUIGetString(STRING_HDDSIZE));
+
+#if 0
+    CONSOLE_PrintTextXY(8, 10, "Maximum size of the new partition is %I64u MB",
+                        PartitionList->CurrentPartition->SectorCount * DiskEntry->BytesPerSector / 1048576);
+#endif
+
+    CONSOLE_SetStatusText(MUIGetString(STRING_CREATEPARTITION));
+
+    PartEntry = PartitionList->CurrentPartition;
+    while (TRUE)
+    {
+        MaxSize = (PartEntry->SectorCount.QuadPart * DiskEntry->BytesPerSector) / 1048576;  /* in MBytes (rounded) */
+
+        if (MaxSize > PARTITION_MAXSIZE)
+            MaxSize = PARTITION_MAXSIZE;
+
+        ShowPartitionSizeInputBox(12, 14, xScreen - 12, 17, /* left, top, right, bottom */
+                                  MaxSize, InputBuffer, &Quit, &Cancel);
+
+        if (Quit == TRUE)
+        {
+            if (ConfirmQuit (Ir) == TRUE)
+            {
+                return QUIT_PAGE;
+            }
+        }
+        else if (Cancel == TRUE)
+        {
+            return SELECT_PARTITION_PAGE;
+        }
+        else
+        {
+            PartSize = atoi(InputBuffer);
+
+            if (PartSize < 1)
+            {
+                /* Too small */
+                continue;
+            }
+
+            if (PartSize > MaxSize)
+            {
+                /* Too large */
+                continue;
+            }
+
+            /* Convert to bytes */
+            if (PartSize == MaxSize)
+            {
+                /* Use all of the unpartitioned disk space */
+                SectorCount = PartEntry->SectorCount.QuadPart;
+            }
+            else
+            {
+                /* Calculate the sector count from the size in MB */
+                SectorCount = PartSize * 1048576 / DiskEntry->BytesPerSector;
+
+                /* But never get larger than the unpartitioned disk space */
+                if (SectorCount > PartEntry->SectorCount.QuadPart)
+                    SectorCount = PartEntry->SectorCount.QuadPart;
+            }
+
+            DPRINT ("Partition size: %I64u bytes\n", PartSize);
+
+            CreateExtendedPartition(PartitionList,
+                                    SectorCount);
+
+            return SELECT_PARTITION_PAGE;
+        }
+    }
+
+    return CREATE_EXTENDED_PARTITION_PAGE;
 }
 
 
@@ -3848,8 +4015,12 @@ RunUSetup(VOID)
                 Page = SelectPartitionPage(&Ir);
                 break;
 
-            case CREATE_PARTITION_PAGE:
-                Page = CreatePartitionPage(&Ir);
+            case CREATE_PRIMARY_PARTITION_PAGE:
+                Page = CreatePrimaryPartitionPage(&Ir);
+                break;
+
+            case CREATE_EXTENDED_PARTITION_PAGE:
+                Page = CreateExtendedPartitionPage(&Ir);
                 break;
 
             case DELETE_PARTITION_PAGE:
index e4be51b..742c323 100644 (file)
@@ -828,12 +828,19 @@ static MUI_ENTRY bgBGSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  \8d â¨á­¥â¥ C §  áꧤ ¢ ­¥ ­  ­®¢ ¤ï«.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  \8d â¨á­¥â¥ C §  áꧤ ¢ ­¥ ­  ­®¢ ¤ï«.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  \8d â¨á­¥â¥ D §  ¨§âਢ ­¥ ­  áêé¥áâ¢ã¢ é ¤ï«.",
         TEXT_STYLE_NORMAL
     },
@@ -1288,6 +1295,10 @@ static MUI_ENTRY bgBGRegistryEntries[] =
 
 MUI_ERROR bgBGErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "\90¥ ªâ\8e\91 ­¥ ¥ ­ ¯ê«­® á«®¦¥­ ­  ª®¬¯îâêà \n"
@@ -1500,6 +1511,32 @@ MUI_ERROR bgBGErrorEntries[] =
         "  * \8d â¨á­¥â¥ ª« ¢¨è, §  ¤  ¯à®¤ê«¦¨â¥.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1612,13 +1649,19 @@ MUI_STRING bgBGStrings[] =
     {STRING_PLEASEWAIT,
      "   \8f®ç ª ©â¥..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = \91« £ ­¥   C = \91ꧤ ¢ ­¥ ­  ¤ï«   F3 = \88§å®¤"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = \91« £ ­¥   C = \91ꧤ ¢ ­¥ ­  ¤ï«   F3 = \88§å®¤"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = \91« £ ­¥   D = \88§âਢ ­¥ ­  ¤ï«   F3 = \88§å®¤"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "\90 §¬¥à ­  ­®¢¨ï ¤ï«:"},
     {STRING_CHOOSENEWPARTITION,
-     "\88§¡à «¨ á⥠¤  áꧤ ¤¥â¥ ­®¢ ¤ï« ­ "},
+     "You have chosen to create a primary partition on"},
+//     "\88§¡à «¨ á⥠¤  áꧤ ¤¥â¥ ­®¢ ¤ï« ­ "},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "\82ꢥ¤¥â¥ à §¬¥à  ­  ­®¢¨ï ¤ï« (¢ ¬¥£ ¡ ©â¨)."},
     {STRING_CREATEPARTITION,
@@ -1701,6 +1744,8 @@ MUI_STRING bgBGStrings[] =
     "    \8d¥à §¯à¥¤¥«¥­® ¬ïáâ®              %6lu %s"},
     {STRING_MAXSIZE,
     "\8c\81 (¤® %lu \8c\81)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "\8d®¢ (\8d¥ä®à¬ â¨à ­)"},
     {STRING_FORMATUNUSED,
index 1bb8dd6..79b4e78 100644 (file)
@@ -827,12 +827,19 @@ static MUI_ENTRY csCZSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Stisknut¡m C umo§n¡te vytvoýen¡ nov\82ho odd¡lu.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Stisknut¡m C umo§n¡te vytvoýen¡ nov\82ho odd¡lu.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Stisknut¡m D umo§n¡te smaz n¡ existuj¡c¡ho odd¡lu.",
         TEXT_STYLE_NORMAL
     },
@@ -1286,6 +1293,10 @@ static MUI_ENTRY csCZRegistryEntries[] =
 
 MUI_ERROR csCZErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS nen¡ ve vaçem po\9f¡ta\9fi kompletnØ nainstalov n.\n"
@@ -1496,6 +1507,32 @@ MUI_ERROR csCZErrorEntries[] =
         "  * Pokra\9fujte stisknut¡m libovoln\82 kl vesy.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1608,13 +1645,19 @@ MUI_STRING csCZStrings[] =
     {STRING_PLEASEWAIT,
      "   ¬ekejte, pros¡m..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = Instalovat   C = Vytvoýit odd¡l    F3 = Ukon\9fit"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = Instalovat   C = Vytvoýit odd¡l    F3 = Ukon\9fit"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = Instalovat   D = Odstranit odd¡l   F3 = Ukon\9fit"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "Velikost nov\82ho odd¡lu:"},
     {STRING_CHOOSENEWPARTITION,
-     "Zvolili jste vytvoýen¡ nov\82ho odd¡lu na"},
+     "You have chosen to create a primary partition on"},
+//     "Zvolili jste vytvoýen¡ nov\82ho odd¡lu na"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Zadejte velikost nov\82ho odd¡lu v megabajtech."},
     {STRING_CREATEPARTITION,
@@ -1697,6 +1740,8 @@ MUI_STRING csCZStrings[] =
     "    M¡sto bez odd¡l\85                 %6lu %s"},
     {STRING_MAXSIZE,
     "MB (max. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "Novì (Nenaform tovanì)"},
     {STRING_FORMATUNUSED,
index 731ff05..3df2aa1 100644 (file)
@@ -814,12 +814,18 @@ static MUI_ENTRY deDESelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  C erstellt eine neue Partition.",
+        "\x07  P erstellt eine prim\84re Partition.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  E erstellt eine erweiterte Partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  D l\94scht eine vorhandene Partition.",
         TEXT_STYLE_NORMAL
     },
@@ -1279,6 +1285,10 @@ static MUI_ENTRY deDERegistryEntries[] =
 
 MUI_ERROR deDEErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Erfolg\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS wurde nicht vollst\84ndig auf Ihrem System installiert.\n"
@@ -1493,6 +1503,32 @@ MUI_ERROR deDEErrorEntries[] =
         "  * Eine beliebige Taste zum Fortsetzen dr\81cken.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "Sie k\94nnen keine weitere prim\84re oder erweiterte Partition in\n"
+        "der Partitionstabelle erstellen, weil die Tabelle voll ist.\n"
+        "\n"
+        "  * Eine beliebige Taste zum Fortsetzen dr\81cken."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "Sie k\94nnen nur eine erweiterte Partition auf jeder Festplatte anlegen.\n"
+        "\n"
+        "  * Eine beliebige Taste zum Fortsetzen dr\81cken."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "Sie k\94nnen hinter einer erweiterten Partition keine weitere Partition anlegen.\n"
+        "\n"
+        "  * Eine beliebige Taste zum Fortsetzen dr\81cken."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "Eine erweiterte Partition muss immer die letzte Partition in \n"
+        "einer Partitionstabelle sein.\n"
+        "\n"
+        "  * Eine beliebige Taste zum Fortsetzen dr\81cken."
+    },
     {
         NULL,
         NULL
@@ -1605,13 +1641,17 @@ MUI_STRING deDEStrings[] =
     {STRING_PLEASEWAIT,
      "   Bitte warten..."},
     {STRING_INSTALLCREATEPARTITION,
-     "  EINGABETASTE = Installieren  C = Partition erstellen  F3 = Installation abbr."},
+     "  EINGABETASTE = Installieren  P = Prim\84re  E = Erweiterte  F3 = Installation abbr."},
     {STRING_INSTALLDELETEPARTITION,
      "  EINGABETASTE = Installieren  D = Partition l\94schen  F3 = Installation abbr."},
+    {STRING_DELETEPARTITION,
+     "   D = Partition l\94schen  F3 = Installation abbrechen"},
     {STRING_PARTITIONSIZE,
      "Gr\94áe der neuen Partition:"},
     {STRING_CHOOSENEWPARTITION,
-     "Eine neue Partition soll hier erstellt werden:"},
+     "Eine prim\84re Partition soll hier erstellt werden:"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "Eine erweiterte Partition soll hier erstellt werden:"},
     {STRING_HDDSIZE,
     "Bitte geben Sie die Gr\94áe der neuen Partition in Megabyte ein."},
     {STRING_CREATEPARTITION,
@@ -1694,6 +1734,8 @@ MUI_STRING deDEStrings[] =
     "    Unpartitionierter Speicher       %6lu %s"},
     {STRING_MAXSIZE,
     "MB (max. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Erweiterte Partition"},
     {STRING_UNFORMATTED,
     "Neu (Unformatiert)"},
     {STRING_FORMATUNUSED,
index 91b88d6..15c5dcb 100644 (file)
@@ -837,12 +837,19 @@ static MUI_ENTRY elGRSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  \8f\98«ã©«\9c C \9a \98 ¤\98 \9b\9e£ ¦¬¨\9aã©\9c«\9c â¤\98 ¤â¦ \9b \98£â¨ ©£\98.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  \8f\98«ã©«\9c C \9a \98 ¤\98 \9b\9e£ ¦¬¨\9aã©\9c«\9c â¤\98 ¤â¦ \9b \98£â¨ ©£\98.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  \8f\98«ã©«\9c D \9a \98 ¤\98 \9b \98\9a¨á¯\9c«\9c â¤\98 ¬§á¨®¦¤ \9b \98£â¨ ©£\98.",
         TEXT_STYLE_NORMAL
     },
@@ -1308,6 +1315,10 @@ static MUI_ENTRY elGRRegistryEntries[] =
 
 MUI_ERROR elGRErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "\92¦ ReactOS \9b\9c¤ \9c\9a¡\98«\98©«á\9f\9e¡\9c §¢ã¨àª ©«¦¤\n"
@@ -1512,6 +1523,32 @@ MUI_ERROR elGRErrorEntries[] =
         "Setup could not set the geo id.\n"
         "ENTER = Reboot computer"
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1624,13 +1661,19 @@ MUI_STRING elGRStrings[] =
     {STRING_PLEASEWAIT,
      "   \8f\98¨\98¡\98¢é §\9c¨ £â¤\9c«\9c..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = \84\9a¡\98«á©«\98©\9e   C = \83\9e£ ¦¬¨\9aå\98 Partition   F3 = \80§¦®é¨\9e©\9e"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = \84\9a¡\98«á©«\98©\9e   C = \83\9e£ ¦¬¨\9aå\98 Partition   F3 = \80§¦®é¨\9e©\9e"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = \84\9a¡\98«á©«\98©\9e   D = \83 \98\9a¨\98­ã Partition   F3 = \80§¦®é¨\9e©\9e"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "\8bâ\9a\9c\9f¦ª «¦¬ ¤â¦¬ partition:"},
     {STRING_CHOOSENEWPARTITION,
-     "\84§ ¢â¥\98«\9c ¤\98 \9b\9e£ ¦¬¨\9aã©\9c«\9c â¤\98 ¤â¦ partition on"},
+     "You have chosen to create a primary partition on"},
+//     "\84§ ¢â¥\98«\9c ¤\98 \9b\9e£ ¦¬¨\9aã©\9c«\9c â¤\98 ¤â¦ partition on"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "\8f\98¨\98¡\98¢é \9bé©«\9c «¦ £â\9a\9c\9f¦ª «¦¬ partition ©\9c megabytes."},
     {STRING_CREATEPARTITION,
@@ -1713,6 +1756,8 @@ MUI_STRING elGRStrings[] =
     "    Unpartitioned space              %6lu %s"},
     {STRING_MAXSIZE,
     "MB (£\9c\9a. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "\8c⦠(\8b\9e \9b \98£¦¨­à£â¤¦)"},
     {STRING_FORMATUNUSED,
index b89e0e4..1037417 100644 (file)
@@ -819,12 +819,18 @@ static MUI_ENTRY enUSSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Press C to create a new partition.",
+        "\x07  Press P to create a primary partition.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Press D to delete an existing partition.",
         TEXT_STYLE_NORMAL
     },
@@ -1278,6 +1284,10 @@ static MUI_ENTRY enUSRegistryEntries[] =
 
 MUI_ERROR enUSErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS is not completely installed on your\n"
@@ -1488,6 +1498,32 @@ MUI_ERROR enUSErrorEntries[] =
         "  * Press any key to continue.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1599,13 +1635,17 @@ MUI_STRING enUSStrings[] =
     {STRING_PLEASEWAIT,
      "   Please wait..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = Install   C = Create Partition   F3 = Quit"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = Install   D = Delete Partition   F3 = Quit"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "Size of new partition:"},
     {STRING_CHOOSENEWPARTITION,
-     "You have chosen to create a new partition on"},
+     "You have chosen to create a primary partition on"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Please enter the size of the new partition in megabytes."},
     {STRING_CREATEPARTITION,
@@ -1688,6 +1728,8 @@ MUI_STRING enUSStrings[] =
     "    Unpartitioned space              %6lu %s"},
     {STRING_MAXSIZE,
     "MB (max. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "New (Unformatted)"},
     {STRING_FORMATUNUSED,
index 2089e1e..277304a 100644 (file)
@@ -826,12 +826,19 @@ static MUI_ENTRY esESSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Presione C para crear una nueva partici¢n.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Presione C para crear una nueva partici¢n.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Presione D para borrar una partici¢n existente.",
         TEXT_STYLE_NORMAL
     },
@@ -1285,6 +1292,10 @@ static MUI_ENTRY esESRegistryEntries[] =
 
 MUI_ERROR esESErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS no est  completamente instalado en su\n"
@@ -1495,6 +1506,32 @@ MUI_ERROR esESErrorEntries[] =
         "  * Presione una tecla para continuar.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1606,13 +1643,19 @@ MUI_STRING esESStrings[] =
     {STRING_PLEASEWAIT,
      "   Por favor, espere..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = Instalar   C = Crear Partici¢n   F3 = Salir"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = Instalar   C = Crear Partici¢n   F3 = Salir"},
+    {STRING_DELETEPARTITION,
+     "   D = Borrar Partici¢n   F3 = Salir"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = Instalar   D = Borrar Partici¢n   F3 = Salir"},
     {STRING_PARTITIONSIZE,
      "Tama¤o de la nueva partici¢n:"},
     {STRING_CHOOSENEWPARTITION,
-     "Ha elegido crear una nueva partici¢n en"},
+     "You have chosen to create a primary partition on"},
+//     "Ha elegido crear una nueva partici¢n en"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Por favor, introduzca el tama¤o de la nueva partici¢n en megabytes."},
     {STRING_CREATEPARTITION,
@@ -1695,6 +1738,8 @@ MUI_STRING esESStrings[] =
     "    Espacio sin particionar              %6lu %s"},
     {STRING_MAXSIZE,
     "MB (max. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "Nuevo (sin formato)"},
     {STRING_FORMATUNUSED,
index 90dce3f..f07a67c 100644 (file)
@@ -819,12 +819,19 @@ static MUI_ENTRY etEESelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Vajuta C, et teha uus partitsioon.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Vajuta C, et teha uus partitsioon.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Vajuta D, et kustutada olemasolev partitsioon.",
         TEXT_STYLE_NORMAL
     },
@@ -1278,6 +1285,10 @@ static MUI_ENTRY etEERegistryEntries[] =
 
 MUI_ERROR etEEErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS ei ole t\84ielikult paigaldatud.\n"
@@ -1485,6 +1496,32 @@ MUI_ERROR etEEErrorEntries[] =
         "  * Vajuta suvalist klahvi, et j\84tkata.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1597,13 +1634,19 @@ MUI_STRING etEEStrings[] =
     {STRING_PLEASEWAIT,
      "   Palun oota..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = Paigalda  C = Loo partitsioon    F3 = V\84lju"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = Paigalda  C = Loo partitsioon    F3 = V\84lju"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = Paigalda  D = Kustuta partitsioon  F3 = V\84lju"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "Uue partitsiooni suurus:"},
     {STRING_CHOOSENEWPARTITION,
-     "Oled valinud kettale uue partitsiooni loomise"},
+     "You have chosen to create a primary partition on"},
+//     "Oled valinud kettale uue partitsiooni loomise"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Sisesta uue partitsiooni suurus megabaitides."},
     {STRING_CREATEPARTITION,
@@ -1686,6 +1729,8 @@ MUI_STRING etEEStrings[] =
     "    Kasutamata kettaruum                %6lu %s"},
     {STRING_MAXSIZE,
     "MB (maks. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "Uus (Vormindamata)"},
     {STRING_FORMATUNUSED,
index 258afe6..853bcf7 100644 (file)
@@ -832,12 +832,19 @@ static MUI_ENTRY frFRSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Appuyer sur C pour creer une nouvelle partition.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Appuyer sur C pour creer une nouvelle partition.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Appuyer sur D pour effacer une partition.",
         TEXT_STYLE_NORMAL
     },
@@ -1291,6 +1298,10 @@ static MUI_ENTRY frFRRegistryEntries[] =
 
 MUI_ERROR frFRErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS n'est pas compl\8atement install\82 sur votre\n"
@@ -1501,6 +1512,32 @@ MUI_ERROR frFRErrorEntries[] =
         "  * Appuyez sur n'importe quelle touche pour continuer.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1613,13 +1650,19 @@ MUI_STRING frFRStrings[] =
     {STRING_PLEASEWAIT,
      "   Veuillez patienter..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTR\90E = Installer   C = Cr\82er Partition   F3 = Quitter"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTR\90E = Installer   C = Cr\82er Partition   F3 = Quitter"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTR\90E = Installer   D = Supprimer Partition   F3 = Quitter"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "Taille de la nouvelle partition :"},
     {STRING_CHOOSENEWPARTITION,
-     "Vous avez choisi de cr\82er une nouvelle partition sur"},
+     "You have chosen to create a primary partition on"},
+//     "Vous avez choisi de cr\82er une nouvelle partition sur"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Veuillez entrer la taille de la nouvelle partition en m\82gaoctets."},
     {STRING_CREATEPARTITION,
@@ -1702,6 +1745,8 @@ MUI_STRING frFRStrings[] =
     "    Espace non partitionn\82              %6lu %s"},
     {STRING_MAXSIZE,
     "Mo (max. %lu Mo)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "Nouveau (non format\82)"},
     {STRING_FORMATUNUSED,
index 9bdc3a8..d3734c0 100644 (file)
@@ -820,12 +820,18 @@ static MUI_ENTRY heILSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Press C to create a new partition.",
+        "\x07  Press P to create a primary partition.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Press D to delete an existing partition.",
         TEXT_STYLE_NORMAL
     },
@@ -1279,6 +1285,10 @@ static MUI_ENTRY heILRegistryEntries[] =
 
 MUI_ERROR heILErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS is not completely installed on your\n"
@@ -1489,6 +1499,32 @@ MUI_ERROR heILErrorEntries[] =
         "  * Press any key to continue.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1600,13 +1636,18 @@ MUI_STRING heILStrings[] =
     {STRING_PLEASEWAIT,
      "   \90\80 \8c\87\8b\85\9a..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = \84\9a\97\8f   C = \96\85\98 \8e\87\89\96\84   F3 = \81\88\8c \84\9a\97\90\84"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = \84\9a\97\8f   C = \96\85\98 \8e\87\89\96\84   F3 = \81\88\8c \84\9a\97\90\84"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = \84\9a\97\8f   D = \8e\87\97 \8e\87\89\96\84   F3 = \81\88\8c \84\9a\97\90\84"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "\82\85\83\8c \84\8e\87\89\96\84 \84\87\83\99\84:"},
     {STRING_CHOOSENEWPARTITION,
-     "You have chosen to create a new partition on"},
+     "You have chosen to create a primary partition on"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Please enter the size of the new partition in megabytes."},
     {STRING_CREATEPARTITION,
@@ -1689,6 +1730,8 @@ MUI_STRING heILStrings[] =
     "    Unpartitioned space              %6lu %s"},
     {STRING_MAXSIZE,
     "MB (max. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "New (Unformatted)"},
     {STRING_FORMATUNUSED,
index 0e40357..1561841 100644 (file)
@@ -820,12 +820,19 @@ static MUI_ENTRY itITSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Premere C per creare una nuova partizione.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Premere C per creare una nuova partizione.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Premere D per cancellare una partizione esistente.",
         TEXT_STYLE_NORMAL
     },
@@ -1279,6 +1286,10 @@ static MUI_ENTRY itITRegistryEntries[] =
 
 MUI_ERROR itITErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS non \8a installato completamente nel vostro\n"
@@ -1489,6 +1500,32 @@ MUI_ERROR itITErrorEntries[] =
         "  * Premere un tasto qualsiasi per continuare.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1601,13 +1638,19 @@ MUI_STRING itITStrings[] =
     {STRING_PLEASEWAIT,
      "   Attendere..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   INVIO = Installa   C = Crea Partizione   F3 = Esci"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   INVIO = Installa   C = Crea Partizione   F3 = Esci"},
     {STRING_INSTALLDELETEPARTITION,
      "   INVIO = Installa   D = Rimuovi Partizione   F3 = Esci"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "Dimensione della nuova partizione:"},
     {STRING_CHOOSENEWPARTITION,
-     "Avete scelto di creare una nuova partizione su"},
+     "You have chosen to create a primary partition on"},
+//     "Avete scelto di creare una nuova partizione su"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Indicare la dimensione della nuova partizione in megabyte."},
     {STRING_CREATEPARTITION,
index be3834f..83685cd 100644 (file)
@@ -820,12 +820,19 @@ static MUI_ENTRY jaJPSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  ±À×¼² Ê߰輮ݠ¦ »¸¾² ½ÙÆÊ C ·°¦ µ¼Ã ¸ÀÞ»²¡",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  ±À×¼² Ê߰輮ݠ¦ »¸¾² ½ÙÆÊ C ·°¦ µ¼Ã ¸ÀÞ»²¡",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  ·¿ÝÉ Ê߰輮ݦ »¸¼Þ® ½ÙÆÊ D ·°¦ µ¼Ã ¸ÀÞ»²¡",
         TEXT_STYLE_NORMAL
     },
@@ -1279,6 +1286,10 @@ static MUI_ENTRY jaJPRegistryEntries[] =
 
 MUI_ERROR jaJPErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS Ê ºÝËß­°ÀÆ ¶Ý¾ÞÝÆ ²Ý½Ä°Ù\n"
@@ -1489,6 +1500,32 @@ MUI_ERROR jaJPErrorEntries[] =
         "  * Press any key to continue.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1600,13 +1637,19 @@ MUI_STRING jaJPStrings[] =
     {STRING_PLEASEWAIT,
      "   µÏÁ ¸ÀÞ»²..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = ²Ý½Ä°Ù   C = Ê߰輮ݠ»¸¾²   F3 = Á­³¼"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = ²Ý½Ä°Ù   C = Ê߰輮ݠ»¸¾²   F3 = Á­³¼"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = ²Ý½Ä°Ù   D = Ê߰輮ݠ»¸¼Þ®   F3 = Á­³¼"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "±À×¼² Ê߰è¼®ÝÉ »²½Þ:"},
     {STRING_CHOOSENEWPARTITION,
-     "±À×¼² Ê߰輮ݦ Â·ÞÆ »¸¾²½Ù ºÄ¶Þ ¾ÝÀ¸ »ÚϼÀ:"},
+     "You have chosen to create a primary partition on"},
+//     "±À×¼² Ê߰輮ݦ Â·ÞÆ »¸¾²½Ù ºÄ¶Þ ¾ÝÀ¸ »ÚϼÀ:"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "±À×¼² Ê߰è¼®ÝÉ »²½Þ¦ Ò¶ÞÊ޲ĠÀݲÃÞ Æ­³Ø®¸ ¼Ã¸ÀÞ»²¡"},
     {STRING_CREATEPARTITION,
@@ -1689,6 +1732,8 @@ MUI_STRING jaJPStrings[] =
     "    ÐÌÞݶÂÉ ½Íß°½              %6lu %s"},
     {STRING_MAXSIZE,
     "MB (»²ÀÞ². %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "¼Ý· (ÐÌ«°Ï¯Ä)"},
     {STRING_FORMATUNUSED,
index d6f0c71..a02554a 100644 (file)
@@ -829,12 +829,18 @@ static MUI_ENTRY ltLTSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Press C to create a new partition.",
+        "\x07  Press P to create a primary partition.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Press D to delete an existing partition.",
         TEXT_STYLE_NORMAL
     },
@@ -1288,6 +1294,10 @@ static MUI_ENTRY ltLTRegistryEntries[] =
 
 MUI_ERROR ltLTErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS is not completely installed on your\n"
@@ -1498,6 +1508,32 @@ MUI_ERROR ltLTErrorEntries[] =
         "  * Press any key to continue.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1610,13 +1646,17 @@ MUI_STRING ltLTStrings[] =
     {STRING_PLEASEWAIT,
      "   Please wait..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = Install   C = Create Partition   F3 = Quit"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = Install   D = Delete Partition   F3 = Quit"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "Size of new partition:"},
     {STRING_CHOOSENEWPARTITION,
-     "You have chosen to create a new partition on"},
+     "You have chosen to create a primary partition on"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Please enter the size of the new partition in megabytes."},
     {STRING_CREATEPARTITION,
@@ -1699,6 +1739,8 @@ MUI_STRING ltLTStrings[] =
     "    Unpartitioned space              %6lu %s"},
     {STRING_MAXSIZE,
     "MB (max. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "New (Unformatted)"},
     {STRING_FORMATUNUSED,
index f1814a1..011111d 100644 (file)
@@ -854,12 +854,19 @@ static MUI_ENTRY nlNLSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Druk op C om een nieuwe partitie aan te maken.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Druk op C om een nieuwe partitie aan te maken.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Druk op D om een bestaande partitie te verwijderen.",
         TEXT_STYLE_NORMAL
     },
@@ -1319,6 +1326,10 @@ static MUI_ENTRY nlNLRegistryEntries[] =
 
 MUI_ERROR nlNLErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS is niet geheel ge\x8Bnstalleerd op uw\n"
@@ -1533,6 +1544,32 @@ MUI_ERROR nlNLErrorEntries[] =
         "  * Druk op een toets om door te gaan.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1645,13 +1682,19 @@ MUI_STRING nlNLStrings[] =
     {STRING_PLEASEWAIT,
      "   Een ogenblik geduld..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = Installeren   C = Partitie aanmaken   F3 = Afsluiten"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = Installeren   C = Partitie aanmaken   F3 = Afsluiten"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = Installeren   D = Partitie verwijderen   F3 = Afsluiten"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "Grootte nieuwe partitie:"},
     {STRING_CHOOSENEWPARTITION,
-     "U wilt een nieuwe partitie aanmaken op"},
+     "You have chosen to create a primary partition on"},
+//     "U wilt een nieuwe partitie aanmaken op"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Voert u de grootte van de nieuwe partitie in in megabytes."},
     {STRING_CREATEPARTITION,
@@ -1734,6 +1777,8 @@ MUI_STRING nlNLStrings[] =
     "    Niet gepartitioneerde ruimte     %6lu %s"},
     {STRING_MAXSIZE,
     "MB (max. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "Nieuw (Ongeformatteerd)"},
     {STRING_FORMATUNUSED,
index 2cf3e6f..6ab8e36 100644 (file)
@@ -828,12 +828,19 @@ static MUI_ENTRY plPLSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Naci\98nij C, by stworzy\86 now¥ partycj©.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Naci\98nij C, by stworzy\86 now¥ partycj©.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Naci\98nij D, by skasowa\86 istniej¥c¥ partycj©.",
         TEXT_STYLE_NORMAL
     },
@@ -1287,6 +1294,10 @@ static MUI_ENTRY plPLRegistryEntries[] =
 
 MUI_ERROR plPLErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS nie zosta\88 w pe\88ni zainstalowany na twoim\n"
@@ -1497,6 +1508,32 @@ MUI_ERROR plPLErrorEntries[] =
         "  * Naci\98nij dowolny klawisz, aby kontynuowa\86.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1609,13 +1646,19 @@ MUI_STRING plPLStrings[] =
     {STRING_PLEASEWAIT,
      "   Prosz© czeka\86..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = Instalacja   C = Utworzenie Partycji   F3 = Wyj\98cie"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = Instalacja   C = Utworzenie Partycji   F3 = Wyj\98cie"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = Instalacja   D = Skasowanie Partycji   F3 = Wyj\98cie"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "Rozmiar nowej partycji:"},
     {STRING_CHOOSENEWPARTITION,
-     "Wybrane: utworzenie nowej partycji na"},
+     "You have chosen to create a primary partition on"},
+//     "Wybrane: utworzenie nowej partycji na"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Prosz© wprowadzi\86 rozmiar nowej partycji w megabajtach."},
     {STRING_CREATEPARTITION,
index 1ee9c7f..2837b85 100644 (file)
@@ -838,12 +838,19 @@ static MUI_ENTRY ptBRSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Para criar uma parti\87Æo no espa\87o nÆo particionado, pressione C.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Para criar uma parti\87Æo no espa\87o nÆo particionado, pressione C.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Para excluir a parti\87Æo selecionada, pressione D.",
         TEXT_STYLE_NORMAL
     },
@@ -1315,6 +1322,10 @@ static MUI_ENTRY ptBRRegistryEntries[] =
 
 MUI_ERROR ptBRErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "O ReactOS nÆo est  completamente instalado no computador.\n"
@@ -1525,6 +1536,32 @@ MUI_ERROR ptBRErrorEntries[] =
         "  * Pressione qualquer tecla para continuar.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1636,13 +1673,19 @@ MUI_STRING ptBRStrings[] =
     {STRING_PLEASEWAIT,
     "   Por favor, aguarde..."},
     {STRING_INSTALLCREATEPARTITION,
-    "   ENTER=Instalar  C=Criar parti\87Æo  F3=Sair"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//    "   ENTER=Instalar  C=Criar parti\87Æo  F3=Sair"},
     {STRING_INSTALLDELETEPARTITION,
     "   ENTER=Instalar  D=Apagar parti\87Æo  F3=Sair"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
     "Tamanho da nova parti\87Æo:"},
     {STRING_CHOOSENEWPARTITION,
-    "Voc\88 solicitou a cria\87Æo de uma nova parti\87Æo em"},
+     "You have chosen to create a primary partition on"},
+//    "Voc\88 solicitou a cria\87Æo de uma nova parti\87Æo em"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Por favor, insira o tamanho da nova parti\87Æo em megabytes (MB)."},
     {STRING_CREATEPARTITION,
@@ -1725,6 +1768,8 @@ MUI_STRING ptBRStrings[] =
     "    Espa\87o nÆo particionado              %6lu %s"},
     {STRING_MAXSIZE,
     "MB (max. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "Novo (sem formato)"},
     {STRING_FORMATUNUSED,
index 38dee78..b4973c8 100644 (file)
@@ -881,12 +881,19 @@ static MUI_ENTRY roROSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Tastaîi C pentru a crea o nouÇ partiîie.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Tastaîi C pentru a crea o nouÇ partiîie.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Tastaîi D pentru a ­terge o partiîie existentÇ.",
         TEXT_STYLE_NORMAL
     },
@@ -1340,6 +1347,10 @@ static MUI_ENTRY roRORegistryEntries[] =
 
 MUI_ERROR roROErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS nu a fost instalat complet \8cn calculatorul\n"
@@ -1566,6 +1577,32 @@ MUI_ERROR roROErrorEntries[] =
         "  * Tastaîi pentru a continua.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1677,13 +1714,19 @@ MUI_STRING roROStrings[] =
     {STRING_PLEASEWAIT,
      "   A­teptaîi..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = Instalare   C = Creare partiîie   F3 = Ie­ire"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = Instalare   C = Creare partiîie   F3 = Ie­ire"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = Instalare   D = ¸tergere partiîie   F3 = Ie­ire"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "MÇrimea noii partiîii:"},
     {STRING_CHOOSENEWPARTITION,
-     "Aîi ales crearea unei noi partiîii pe"},
+     "You have chosen to create a primary partition on"},
+//     "Aîi ales crearea unei noi partiîii pe"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Introduceîi mÇrimea noii partiîii \8cn megaocteîi."},
     {STRING_CREATEPARTITION,
@@ -1766,6 +1809,8 @@ MUI_STRING roROStrings[] =
     "    Spaîiu nepartiîionat             %6lu %s"},
     {STRING_MAXSIZE,
     "Mo (max. %lu Mo)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "Part. nouÇ (neformatatÇ)"},
     {STRING_FORMATUNUSED,
index bbfd631..c5376f6 100644 (file)
@@ -820,12 +820,19 @@ static MUI_ENTRY ruRUSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  \8d ¦¬¨â¥ C ¤«ï á®§¤ ­¨ï ­®¢®£® à §¤¥« .",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  \8d ¦¬¨â¥ C ¤«ï á®§¤ ­¨ï ­®¢®£® à §¤¥« .",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  \8d ¦¬¨â¥ D ¤«ï ã¤ «¥­¨ï áãé¥áâ¢ãî饣® à §¤¥« .",
         TEXT_STYLE_NORMAL
     },
@@ -1279,6 +1286,10 @@ static MUI_ENTRY ruRURegistryEntries[] =
 
 MUI_ERROR ruRUErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS ­¥ ¡ë« ¯®«­®áâìî ãáâ ­®¢«¥­ ­  ¢ è\n"
@@ -1489,6 +1500,32 @@ MUI_ERROR ruRUErrorEntries[] =
         "  * Press any key to continue.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1601,13 +1638,19 @@ MUI_STRING ruRUStrings[] =
     {STRING_PLEASEWAIT,
      "   \8f®¦ «ã©áâ , ¯®¤®¦¤¨â¥..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = \93áâ ­®¢¨âì   C = \91®§¤ âì à §¤¥«   F3 = \82ë室"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = \93áâ ­®¢¨âì   C = \91®§¤ âì à §¤¥«   F3 = \82ë室"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = \93áâ ­®¢¨âì   D = \93¤ «¨âì à §¤¥«   F3 = \82ë室"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "\90 §¬¥à ­®¢®£® à §¤¥« :"},
     {STRING_CHOOSENEWPARTITION,
-     "\82ë å®â¨â¥ á®§¤ âì ­®¢ë© à §¤¥« ­ "},
+     "You have chosen to create a primary partition on"},
+//     "\82ë å®â¨â¥ á®§¤ âì ­®¢ë© à §¤¥« ­ "},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "\8f®¦ «ã©áâ , ¢¢¥¤¨â¥ à §¬¥à ­®¢®£® à §¤¥«  ¢ ¬¥£ ¡ ©â å."},
     {STRING_CREATEPARTITION,
@@ -1690,6 +1733,8 @@ MUI_STRING ruRUStrings[] =
     "    \8d¥à §¬¥ç¥­­®¥ ¯à®áâà ­á⢮              %6lu %s"},
     {STRING_MAXSIZE,
     "\8c\81 (¬ ªá. %lu \8c\81)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "\8d®¢ë© (­¥®âä®à¬ â¨à®¢ ­­ë©)"},
     {STRING_FORMATUNUSED,
index 6c7bf3c..5ea527a 100644 (file)
@@ -827,12 +827,19 @@ static MUI_ENTRY skSKSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Stla\9fte C pre vytvorenie novej oblasti.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Stla\9fte C pre vytvorenie novej oblasti.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Stla\9fte D pre vymazanie existuj£cej oblasti.",
         TEXT_STYLE_NORMAL
     },
@@ -1286,6 +1293,10 @@ static MUI_ENTRY skSKRegistryEntries[] =
 
 MUI_ERROR skSKErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "Syst\82m ReactOS nie je kompletne nainçtalovanì na Vaçom\n"
@@ -1499,6 +1510,32 @@ MUI_ERROR skSKErrorEntries[] =
         "  * Pokra\9fujte stla\9fen¡m \96ubovo\96n\82ho kl vesu.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1611,13 +1648,19 @@ MUI_STRING skSKStrings[] =
     {STRING_PLEASEWAIT,
      "   Po\9fkajte, pros¡m ..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = Inçtalova\9c   C = Vytvori\9c oblas\9c   F3 = Skon\9fi\9c"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = Inçtalova\9c   C = Vytvori\9c oblas\9c   F3 = Skon\9fi\9c"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = Inçtalova\9c   D = Odstr ni\9c oblas\9c   F3 = Skon\9fi\9c"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "Ve\96kos\9c novej oblasti:"},
     {STRING_CHOOSENEWPARTITION,
-     "Zvolili ste vytvorenie novej oblasti na"},
+     "You have chosen to create a primary partition on"},
+//     "Zvolili ste vytvorenie novej oblasti na"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Zadajte, pros¡m, ve\96kos\9c novej oblasti v megabajtoch."},
     {STRING_CREATEPARTITION,
@@ -1700,6 +1743,8 @@ MUI_STRING skSKStrings[] =
     "    Miesto bez oblast¡               %6lu %s"},
     {STRING_MAXSIZE,
     "MB (max. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "Nov  (Nenaform tovan )"},
     {STRING_FORMATUNUSED,
index f82c4a6..de67d4a 100644 (file)
@@ -823,12 +823,19 @@ static MUI_ENTRY sqALSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Kiko C p\89r t\89 krijuar nj\89 particion t\89 ri.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Kiko C p\89r t\89 krijuar nj\89 particion t\89 ri.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Kliko D p\89r t\89 fshir\89 nj\89 particion ekzistues.",
         TEXT_STYLE_NORMAL
     },
@@ -1282,6 +1289,10 @@ static MUI_ENTRY sqALRegistryEntries[] =
 
 MUI_ERROR sqALErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS nuk \89shte instaluar plotesisht ne kompjuterin\n"
@@ -1492,6 +1503,32 @@ MUI_ERROR sqALErrorEntries[] =
         "  * Shtypni nj\89 tast cfar\89do p\89r t\89 vazhduar.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1603,13 +1640,19 @@ MUI_STRING sqALStrings[] =
     {STRING_PLEASEWAIT,
      "   Ju lutem prisni..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = Instalo   C = Krijo Particion   F3 = Dil"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = Instalo   C = Krijo Particion   F3 = Dil"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = Instalo   D = Fshi Particion   F3 = Dil"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "Madh\89sia e particionit t\89 ri:"},
     {STRING_CHOOSENEWPARTITION,
+//     "You have chosen to create a primary partition on"},
      "Ju keni zgjedhur p\89r t\89 krijuar nj\89 ndarje t\89 re n\89"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Ju lutem, jepini madh\89sin\89 e particionit t\89 ri n\89 megabajt."},
     {STRING_CREATEPARTITION,
@@ -1692,6 +1735,8 @@ MUI_STRING sqALStrings[] =
     "    Hap\89sire e papjesesezuar              %6lu %s"},
     {STRING_MAXSIZE,
     "MB (max. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "I ri (papjesesezuar)"},
     {STRING_FORMATUNUSED,
index c0f8c13..fdb6377 100644 (file)
@@ -826,12 +826,19 @@ static MUI_ENTRY svSESelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Tryck C f\94r att skapa en ny partition.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Tryck C f\94r att skapa en ny partition.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Tryck D f\94r att ta bort en befintlig partititon.",
         TEXT_STYLE_NORMAL
     },
@@ -1285,6 +1292,10 @@ static MUI_ENTRY svSERegistryEntries[] =
 
 MUI_ERROR svSEErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS installerades inte fullst\84ndigt p\86 din\n"
@@ -1495,6 +1506,32 @@ MUI_ERROR svSEErrorEntries[] =
         "  * Tryck valfri tangent f\94r att forts\84tta.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1606,13 +1643,19 @@ MUI_STRING svSEStrings[] =
     {STRING_PLEASEWAIT,
      "   Var v\84nlig v\84nta..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = Installera   C = Skapa Partition   F3 = Avsluta"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = Installera   C = Skapa Partition   F3 = Avsluta"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = Installera   D = Ta bort Partition   F3 = Avsluta"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "Storlek p\86 den nya partitionen:"},
     {STRING_CHOOSENEWPARTITION,
-     "Du har valt att skapa en ny partiton p\86"},
+     "You have chosen to create a primary partition on"},
+//     "Du har valt att skapa en ny partiton p\86"},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "V\84nligen skriv in storleken av den nya partitionen i megabytes."},
     {STRING_CREATEPARTITION,
@@ -1695,6 +1738,8 @@ MUI_STRING svSEStrings[] =
     "    Opartitionerat utrymme              %6lu %s"},
     {STRING_MAXSIZE,
     "MB (max. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "Ny (Oformaterad)"},
     {STRING_FORMATUNUSED,
index 4153297..2afd98a 100644 (file)
@@ -807,12 +807,19 @@ static MUI_ENTRY trTRSelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  Se\87ili bo\9fluktan yeni bir b\94l\81m olu\9fturmak i\87in C d\81§mesine bas\8dn\8dz.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  Se\87ili bo\9fluktan yeni bir b\94l\81m olu\9fturmak i\87in C d\81§mesine bas\8dn\8dz.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  Se\87ili b\94l\81m\81 silmek i\87in D d\81§mesine bas\8dn\8dz.",
         TEXT_STYLE_NORMAL
     },
@@ -1254,6 +1261,10 @@ static MUI_ENTRY trTRRegistryEntries[] =
 
 MUI_ERROR trTRErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS, bilgisayara b\81t\81n\81yle kurulmad\8d.\n"
@@ -1463,6 +1474,32 @@ MUI_ERROR trTRErrorEntries[] =
         "  * S\81rd\81rmek i\87in bir d\81§meye bas\8dn\8dz.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1574,13 +1611,19 @@ MUI_STRING trTRStrings[] =
     {STRING_PLEASEWAIT,
     "   L\81tfen bekleyiniz..."},
     {STRING_INSTALLCREATEPARTITION,
-    "   Giri\9f = Kur   C = B\94l\81m Olu\9ftur   F3 = \80\8dk\8d\9f"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//    "   Giri\9f = Kur   C = B\94l\81m Olu\9ftur   F3 = \80\8dk\8d\9f"},
     {STRING_INSTALLDELETEPARTITION,
     "   Giri\9f = Kur   D = B\94l\81m\81 Sil   F3 = \80\8dk\8d\9f"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
     "B\81y\81kl\81§\81 giriniz:"},
     {STRING_CHOOSENEWPARTITION,
-    "Yeni bir b\94l\81m olu\9fturmay\8d se\87tiniz."},
+     "You have chosen to create a primary partition on"},
+//    "Yeni bir b\94l\81m olu\9fturmay\8d se\87tiniz."},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "Olu\9fturulacak b\94l\81m\81n b\81y\81kl\81§\81n\81 mega\87oklu olarak giriniz."},
     {STRING_CREATEPARTITION,
@@ -1663,6 +1706,8 @@ MUI_STRING trTRStrings[] =
     "    Kullan\8dlmayan Bo\9fluk             %6lu %s"},
     {STRING_MAXSIZE,
     "MB (En \87ok %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "Yeni (Bi\87imlendirilmemi\9f)"},
     {STRING_FORMATUNUSED,
index 10231d1..a3b39c2 100644 (file)
@@ -825,12 +825,19 @@ static MUI_ENTRY ukUASelectPartitionEntries[] =
     {
         8,
         15,
-        "\x07  \8d â¨á­iâì C é®¡ á⢮à¨â¨ ­®¢¨© à®§¤i«.",
+        "\x07  Press P to create a primary partition.",
+//        "\x07  \8d â¨á­iâì C é®¡ á⢮à¨â¨ ­®¢¨© à®§¤i«.",
         TEXT_STYLE_NORMAL
     },
     {
         8,
         17,
+        "\x07  Press E to create an extended partition.",
+        TEXT_STYLE_NORMAL
+    },
+    {
+        8,
+        19,
         "\x07  \8d â¨á­iâì D é®¡ ¢¨¤ «¨â¨ iá­ãî稩 à®§¤i«.",
         TEXT_STYLE_NORMAL
     },
@@ -1284,6 +1291,10 @@ static MUI_ENTRY ukUARegistryEntries[] =
 
 MUI_ERROR ukUAErrorEntries[] =
 {
+    {
+        // NOT_AN_ERROR
+        "Success\n"
+    },
     {
         //ERROR_NOT_INSTALLED
         "ReactOS ­¥ ¡ã¢ ¯®¢­iáâî ¢áâ ­®¢«¥­¨© ­  \82 è\n"
@@ -1495,6 +1506,32 @@ MUI_ERROR ukUAErrorEntries[] =
         "  * \8d â¨á­iâì ¡ã¤ì-ïªã ª« ¢ièã ¤«ï ¯à®¤®¢¦¥­­ï.",
         NULL
     },
+    {
+        //ERROR_PARTITION_TABLE_FULL,
+        "You can not create a new primary or extended partition in the\n"
+        "partition table of this disk because the partition table is full.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_ONLY_ONE_EXTENDED,
+        "You can not create more than one extended partition per disk.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_NOT_BEHIND_EXTENDED,
+        "You can not create a partition behind an extended partition.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
+    {
+        //ERROR_EXTENDED_NOT_LAST,
+        "An extended partition must always be the last\n"
+        "partition in a partition table.\n"
+        "\n"
+        "  * Press any key to continue."
+    },
     {
         NULL,
         NULL
@@ -1606,13 +1643,19 @@ MUI_STRING ukUAStrings[] =
     {STRING_PLEASEWAIT,
      "   \81ã¤ì-« áª , § ç¥ª ©â¥..."},
     {STRING_INSTALLCREATEPARTITION,
-     "   ENTER = \82áâ ­®¢¨â¨   C = \91⢮à¨â¨ \90®§¤i«   F3 = \82¨©â¨"},
+     "   ENTER = Install   P = Create Primary   E = Create Extended   F3 = Quit"},
+//     "   ENTER = \82áâ ­®¢¨â¨   C = \91⢮à¨â¨ \90®§¤i«   F3 = \82¨©â¨"},
     {STRING_INSTALLDELETEPARTITION,
      "   ENTER = \82áâ ­®¢¨â¨   D = \82¨¤ «¨â¨ \90®§¤i«   F3 = \82¨©â¨"},
+    {STRING_DELETEPARTITION,
+     "   D = Delete Partition   F3 = Quit"},
     {STRING_PARTITIONSIZE,
      "\90®§¬ià ­®¢®£® à®§¤i«ã:"},
     {STRING_CHOOSENEWPARTITION,
-     "\82¨ å®ç¥â¥ á⢮à¨â¨ ­®¢¨© à®§¤i« ­ "},
+     "You have chosen to create a primary partition on"},
+//     "\82¨ å®ç¥â¥ á⢮à¨â¨ ­®¢¨© à®§¤i« ­ "},
+    {STRING_CHOOSE_NEW_EXTENDED_PARTITION,
+     "You have chosen to create an extended partition on"},
     {STRING_HDDSIZE,
     "\81ã¤ì-« áª , ¢¢¥¤iâì à®§¬ià ­®¢®£® à®§¤i«ã ¢ ¬¥£ ¡ ©â å."},
     {STRING_CREATEPARTITION,
@@ -1695,6 +1738,8 @@ MUI_STRING ukUAStrings[] =
     "    \8d¥à®§¬i祭  ®¡« áâì              %6lu %s"},
     {STRING_MAXSIZE,
     "MB (¬ ªá. %lu MB)"},
+    {STRING_EXTENDED_PARTITION,
+    "Extended Partition"},
     {STRING_UNFORMATTED,
     "\8d®¢¨© (\8d¥ä®à¬ â®¢ ­¨©)"},
     {STRING_FORMATUNUSED,
index bf35835..48092c8 100644 (file)
@@ -100,8 +100,10 @@ MUIGetString(
 #define STRING_PLEASEWAIT                1
 #define STRING_INSTALLCREATEPARTITION    2
 #define STRING_INSTALLDELETEPARTITION    3
+#define STRING_DELETEPARTITION                59
 #define STRING_PARTITIONSIZE             4
 #define STRING_CHOOSENEWPARTITION        5
+#define STRING_CHOOSE_NEW_EXTENDED_PARTITION  57
 #define STRING_HDDSIZE                   6
 #define STRING_CREATEPARTITION           7
 #define STRING_PARTFORMAT                8
@@ -144,6 +146,7 @@ MUIGetString(
 #define STRING_UNPSPACE                  48
 #define STRING_MAXSIZE                   49
 #define STRING_UNFORMATTED               50
+#define STRING_EXTENDED_PARTITION             58
 #define STRING_FORMATUNUSED              51
 #define STRING_FORMATUNKNOWN             52
 #define STRING_KB                        53
index 3312e21..70c6060 100644 (file)
@@ -1373,6 +1373,11 @@ PrintPartitionData(
             {
                 PartType = "NTFS"; /* FIXME: Not quite correct! */
             }
+            else if ((PartEntry->PartitionType == PARTITION_EXTENDED) ||
+                     (PartEntry->PartitionType == PARTITION_XINT13_EXTENDED))
+            {
+                PartType = MUIGetString(STRING_EXTENDED_PARTITION);
+            }
         }
 
         PartSize.QuadPart = PartEntry->SectorCount.QuadPart * DiskEntry->BytesPerSector;
@@ -2095,7 +2100,7 @@ GetNextUnpartitionedEntry(
 
 
 VOID
-CreateNewPartition(
+CreatePrimaryPartition(
     PPARTLIST List,
     ULONGLONG SectorCount,
     BOOLEAN AutoCreate)
@@ -2104,7 +2109,7 @@ CreateNewPartition(
     PPARTENTRY PartEntry;
     PPARTENTRY NewPartEntry;
 
-    DPRINT1("CreateNewPartition(%I64u)\n", SectorCount);
+    DPRINT1("CreatePrimaryPartition(%I64u)\n", SectorCount);
 
     if (List == NULL ||
         List->CurrentDisk == NULL ||
@@ -2180,6 +2185,102 @@ DPRINT1("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart);
 }
 
 
+VOID
+CreateExtendedPartition(
+    PPARTLIST List,
+    ULONGLONG SectorCount)
+{
+    PDISKENTRY DiskEntry;
+    PPARTENTRY PartEntry;
+    PPARTENTRY NewPartEntry;
+
+    DPRINT1("CreatePrimaryPartition(%I64u)\n", SectorCount);
+
+    if (List == NULL ||
+        List->CurrentDisk == NULL ||
+        List->CurrentPartition == NULL ||
+        List->CurrentPartition->IsPartitioned == TRUE)
+    {
+        return;
+    }
+
+    DiskEntry = List->CurrentDisk;
+    PartEntry = List->CurrentPartition;
+
+DPRINT1("Current partition sector count: %I64u\n", PartEntry->SectorCount.QuadPart);
+
+    if (Align(PartEntry->StartSector.QuadPart + SectorCount, DiskEntry->SectorAlignment) - PartEntry->StartSector.QuadPart == PartEntry->SectorCount.QuadPart)
+    {
+DPRINT1("Convert existing partition entry\n");
+        /* Convert current entry to 'new (unformatted)' */
+        PartEntry->IsPartitioned = TRUE;
+//        PartEntry->PartitionType = PARTITION_ENTRY_UNUSED;
+        PartEntry->FormatState = Formatted;
+        PartEntry->AutoCreate = FALSE;
+        PartEntry->New = FALSE;
+        PartEntry->BootIndicator = FALSE; /* FIXME */
+
+DPRINT1("First Sector: %I64u\n", PartEntry->StartSector.QuadPart);
+DPRINT1("Last Sector: %I64u\n", PartEntry->StartSector.QuadPart + PartEntry->SectorCount.QuadPart - 1);
+DPRINT1("Total Sectors: %I64u\n", PartEntry->SectorCount.QuadPart);
+    }
+    else
+    {
+DPRINT1("Add new partition entry\n");
+
+        /* Insert and initialize a new partition entry */
+        NewPartEntry = RtlAllocateHeap(ProcessHeap,
+                                       HEAP_ZERO_MEMORY,
+                                       sizeof(PARTENTRY));
+        if (NewPartEntry == NULL)
+            return;
+
+        /* Insert the new entry into the list */
+        InsertTailList(&PartEntry->ListEntry,
+                       &NewPartEntry->ListEntry);
+
+        NewPartEntry->DiskEntry = DiskEntry;
+
+        NewPartEntry->IsPartitioned = TRUE;
+        NewPartEntry->StartSector.QuadPart = PartEntry->StartSector.QuadPart;
+        NewPartEntry->SectorCount.QuadPart = Align(NewPartEntry->StartSector.QuadPart + SectorCount, DiskEntry->SectorAlignment) -
+                                             NewPartEntry->StartSector.QuadPart;
+
+//        NewPartEntry->PartitionType = PARTITION_ENTRY_UNUSED;
+
+DPRINT1("First Sector: %I64u\n", NewPartEntry->StartSector.QuadPart);
+DPRINT1("Last Sector: %I64u\n", NewPartEntry->StartSector.QuadPart + NewPartEntry->SectorCount.QuadPart - 1);
+DPRINT1("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart);
+
+        NewPartEntry->New = FALSE;
+        NewPartEntry->FormatState = Formatted;
+        NewPartEntry->BootIndicator = FALSE; /* FIXME */
+
+        PartEntry->StartSector.QuadPart = NewPartEntry->StartSector.QuadPart + NewPartEntry->SectorCount.QuadPart;
+        PartEntry->SectorCount.QuadPart -= (PartEntry->StartSector.QuadPart - NewPartEntry->StartSector.QuadPart);
+    }
+
+    if (NewPartEntry->StartSector.QuadPart < 1450560)
+    {
+        /* Partition starts below the 8.4GB boundary ==> CHS partition */
+        NewPartEntry->PartitionType = PARTITION_EXTENDED;
+    }
+    else
+    {
+        /* Partition starts above the 8.4GB boundary ==> LBA partition */
+        NewPartEntry->PartitionType = PARTITION_XINT13_EXTENDED;
+    }
+
+    UpdateDiskLayout(DiskEntry);
+
+    DiskEntry->Dirty = TRUE;
+
+    UpdatePartitionNumbers(DiskEntry);
+
+    AssignDriveLetters(List);
+}
+
+
 VOID
 DeleteCurrentPartition(
     PPARTLIST List)
@@ -2561,4 +2662,143 @@ SetMountedDeviceValues(
     return TRUE;
 }
 
+
+static
+BOOLEAN
+IsLastPrimaryPartiton(
+    IN PPARTENTRY PartEntry)
+{
+    return (PartEntry->ListEntry.Flink == &PartEntry->DiskEntry->PrimaryPartListHead);
+}
+
+
+static
+BOOLEAN
+IsPreviousPartitionExtended(
+    IN PPARTENTRY PartEntry,
+    IN PDISKENTRY DiskEntry)
+{
+    PPARTENTRY PrevPartEntry;
+    PLIST_ENTRY Entry;
+
+    Entry = PartEntry->ListEntry.Blink;
+
+    while (Entry != &DiskEntry->PrimaryPartListHead)
+    {
+        PrevPartEntry = CONTAINING_RECORD(Entry, PARTENTRY, ListEntry);
+
+        if (IsContainerPartition(PrevPartEntry->PartitionType))
+            return TRUE;
+
+        Entry = Entry->Blink;
+    }
+
+    return FALSE;
+
+}
+
+
+static
+ULONG
+GetPrimaryPartitionCount(
+    IN PDISKENTRY DiskEntry)
+{
+    PLIST_ENTRY Entry;
+    PPARTENTRY PartEntry;
+    UINT nCount = 0;
+
+    Entry = DiskEntry->PrimaryPartListHead.Flink;
+    while (Entry != &DiskEntry->PrimaryPartListHead)
+    {
+        PartEntry = CONTAINING_RECORD(Entry, PARTENTRY, ListEntry);
+        if (PartEntry->IsPartitioned == TRUE)
+            nCount++;
+
+        Entry = Entry->Flink;
+    }
+
+    return nCount;
+}
+
+
+static
+ULONG
+GetExtendedPartitionCount(
+    IN PDISKENTRY DiskEntry)
+{
+    PLIST_ENTRY Entry;
+    PPARTENTRY PartEntry;
+    UINT nCount = 0;
+
+    Entry = DiskEntry->PrimaryPartListHead.Flink;
+    while (Entry != &DiskEntry->PrimaryPartListHead)
+    {
+        PartEntry = CONTAINING_RECORD(Entry, PARTENTRY, ListEntry);
+        if (PartEntry->IsPartitioned == TRUE &&
+            IsContainerPartition(PartEntry->PartitionType))
+            nCount++;
+
+        Entry = Entry->Flink;
+    }
+
+    return nCount;
+}
+
+
+ULONG
+PrimaryPartitionCreationChecks(
+    IN PPARTLIST List)
+{
+    PDISKENTRY DiskEntry;
+    PPARTENTRY PartEntry;
+
+    DiskEntry = List->CurrentDisk;
+    PartEntry = List->CurrentPartition;
+
+    /* Fail if partition is already in use */
+    if (PartEntry->IsPartitioned == TRUE)
+        return ERROR_NEW_PARTITION;
+
+    /* Fail if there are more than 4 partitions in the list */
+    if (GetPrimaryPartitionCount(DiskEntry) > 4)
+        return ERROR_PARTITION_TABLE_FULL;
+
+    /* FIXME: Fail if this partiton is located behind an extended partition */
+    if (IsPreviousPartitionExtended(PartEntry, DiskEntry))
+        return ERROR_NOT_BEHIND_EXTENDED;
+
+    return ERROR_SUCCESS;
+}
+
+
+ULONG
+ExtendedPartitionCreationChecks(
+    IN PPARTLIST List)
+{
+    PDISKENTRY DiskEntry;
+    PPARTENTRY PartEntry;
+
+    DiskEntry = List->CurrentDisk;
+    PartEntry = List->CurrentPartition;
+
+    /* Fail if partition is already in use */
+    if (PartEntry->IsPartitioned == TRUE)
+        return ERROR_NEW_PARTITION;
+
+    /* Fail if there are more than 4 partitions in the list */
+    if (GetPrimaryPartitionCount(DiskEntry) > 4)
+        return ERROR_PARTITION_TABLE_FULL;
+
+    /* Fail if there is another extended partition in the list */
+    if (GetExtendedPartitionCount(DiskEntry) != 0)
+        return ERROR_ONLY_ONE_EXTENDED;
+
+    /* Fail if the partition is not the last list entry */
+    if (!IsLastPrimaryPartiton(PartEntry))
+        return ERROR_EXTENDED_NOT_LAST;
+
+    return ERROR_SUCCESS;
+}
+
+
 /* EOF */
index 5cf1841..7d09204 100644 (file)
@@ -216,11 +216,16 @@ ScrollUpPartitionList(
     PPARTLIST List);
 
 VOID
-CreateNewPartition(
+CreatePrimaryPartition(
     PPARTLIST List,
     ULONGLONG PartitionSize,
     BOOLEAN AutoCreate);
 
+VOID
+CreateExtendedPartition(
+    PPARTLIST List,
+    ULONGLONG PartitionSize);
+
 VOID
 DeleteCurrentPartition(
     PPARTLIST List);
@@ -237,4 +242,12 @@ BOOLEAN
 WritePartitionsToDisk(
     PPARTLIST List);
 
+ULONG
+PrimaryPartitionCreationChecks(
+    IN PPARTLIST List);
+
+ULONG
+ExtendedPartitionCreationChecks(
+    IN PPARTLIST List);
+
 /* EOF */
index dd88ca8..0d4f587 100644 (file)
@@ -128,7 +128,8 @@ typedef enum _PAGE_NUMBER
     LAYOUT_SETTINGS_PAGE,
 
     SELECT_PARTITION_PAGE,
-    CREATE_PARTITION_PAGE,
+    CREATE_PRIMARY_PARTITION_PAGE,
+    CREATE_EXTENDED_PARTITION_PAGE,
     DELETE_PARTITION_PAGE,
 
     SELECT_FILE_SYSTEM_PAGE,