Example #1
0
VOID
DrawFileSystemList(
    IN PFILE_SYSTEM_LIST List)
{
    PLIST_ENTRY ListEntry;
    PFILE_SYSTEM_ITEM Item;
    COORD coPos;
    DWORD Written;
    ULONG Index = 0;
    CHAR Buffer[70];

    ListEntry = List->ListHead.Flink;
    while (ListEntry != &List->ListHead)
    {
        Item = CONTAINING_RECORD(ListEntry, FILE_SYSTEM_ITEM, ListEntry);

        coPos.X = List->Left;
        coPos.Y = List->Top + (SHORT)Index;
        FillConsoleOutputAttribute(StdOutput,
                                   FOREGROUND_WHITE | BACKGROUND_BLUE,
                                   sizeof(Buffer),
                                   coPos,
                                   &Written);
        FillConsoleOutputCharacterA(StdOutput,
                                    ' ',
                                    sizeof(Buffer),
                                    coPos,
                                    &Written);

        if (Item->FileSystemName)
        {
            if (Item->QuickFormat)
                snprintf(Buffer, sizeof(Buffer), MUIGetString(STRING_FORMATDISK1), Item->FileSystemName);
            else
                snprintf(Buffer, sizeof(Buffer), MUIGetString(STRING_FORMATDISK2), Item->FileSystemName);
        }
        else
            snprintf(Buffer, sizeof(Buffer), MUIGetString(STRING_KEEPFORMAT));

        if (ListEntry == &List->Selected->ListEntry)
            CONSOLE_SetInvertedTextXY(List->Left,
                                      List->Top + (SHORT)Index,
                                      Buffer);
        else
            CONSOLE_SetTextXY(List->Left,
                              List->Top + (SHORT)Index,
                              Buffer);
        Index++;
        ListEntry = ListEntry->Flink;
    }
}
Example #2
0
NTSTATUS
FormatPartition(
    IN PUNICODE_STRING DriveRoot,
    IN PFILE_SYSTEM_ITEM FileSystem)
{
    NTSTATUS Status;

    if (!FileSystem->FormatFunc)
        return STATUS_NOT_SUPPORTED;

    FormatProgressBar = CreateProgressBar(6,
                                          yScreen - 14,
                                          xScreen - 7,
                                          yScreen - 10,
                                          10,
                                          24,
                                          TRUE,
                                          MUIGetString(STRING_FORMATTINGDISK));

    ProgressSetStepCount(FormatProgressBar, 100);

    Status = FileSystem->FormatFunc(DriveRoot,
                                    FMIFS_HARDDISK,          /* MediaFlag */
                                    NULL,                    /* Label */
                                    FileSystem->QuickFormat, /* QuickFormat */
                                    0,                       /* ClusterSize */
                                    FormatCallback);         /* Callback */

    DestroyProgressBar(FormatProgressBar);
    FormatProgressBar = NULL;

    DPRINT("FormatPartition() finished with status 0x%08lx\n", Status);

    return Status;
}