windows-nt/Source/XPSP1/NT/base/fs/utils/fdisk/fddata.c
2020-09-26 16:20:57 +08:00

170 lines
5 KiB
C

#include "fdisk.h"
HANDLE hModule;
// IsDiskRemovable is an array of BOOLEANs each of which indicates
// whether the corresponding physical disk is removable.
PBOOLEAN IsDiskRemovable = NULL;
// RemovableDiskReservedDriveLetters is an array of CHARs which
// shows the reserved drive letter for each disk if that disk is
// removable.
PCHAR RemovableDiskReservedDriveLetters;
// This will be an array of pointers to DISKSTATE structures, indexed
// by disk number.
PDISKSTATE *Disks;
// BootDiskNumber is the number of the disk on which the boot partition
// (ie. the disk with the WinNt files) resides. BootPartitionNumber is
// the original partition number of this partition.
ULONG BootDiskNumber;
ULONG BootPartitionNumber;
// window handles
HANDLE hwndFrame,
hwndList;
// GDI objects
HBITMAP hBitmapSmallDisk;
HBITMAP hBitmapRemovableDisk;
HDC hDC;
HFONT hFontGraph,
hFontGraphBold;
HBRUSH Brushes[BRUSH_ARRAY_SIZE];
HBRUSH hBrushFreeLogical,
hBrushFreePrimary;
HPEN hPenNull,
hPenThinSolid;
HCURSOR hcurWait,
hcurNormal;
// initial stuff for the disk graphs, used when there is
// no info in win.ini.
int BrushHatches[BRUSH_ARRAY_SIZE] = { DEFAULT_HATCH_USEDPRIMARY,
DEFAULT_HATCH_USEDLOGICAL,
DEFAULT_HATCH_STRIPESET,
DEFAULT_HATCH_MIRROR,
DEFAULT_HATCH_VOLUMESET
};
int BrushColors[BRUSH_ARRAY_SIZE] = { DEFAULT_COLOR_USEDPRIMARY,
DEFAULT_COLOR_USEDLOGICAL,
DEFAULT_COLOR_STRIPESET,
DEFAULT_COLOR_MIRROR,
DEFAULT_COLOR_VOLUMESET
};
// colors and patterns available for the disk graphs
COLORREF AvailableColors[NUM_AVAILABLE_COLORS] = { RGB(0,0,0), // black
RGB(128,128,128), // dark gray
RGB(192,192,192), // light gray
RGB(255,255,255), // white
RGB(128,128,0), // dark yellow
RGB(128,0,128), // violet
RGB(128,0,0), // dark red
RGB(0,128,128), // dark cyan
RGB(0,128,0), // dark green
RGB(0,0,128), // dark blue
RGB(255,255,0), // yellow
RGB(255,0,255), // light violet
RGB(255,0,0), // red
RGB(0,255,255), // cyan
RGB(0,255,0), // green
RGB(0,0,255) // blue
};
int AvailableHatches[NUM_AVAILABLE_HATCHES] = { 2,3,4,5,6 };
// positions for various items in a disk graph
DWORD GraphWidth,
GraphHeight;
DWORD BarTopYOffset,
BarBottomYOffset,
BarHeight;
DWORD dxDriveLetterStatusArea;
DWORD dxBarTextMargin,
dyBarTextLine;
DWORD dxSmallDisk,
dySmallDisk,
xSmallDisk,
ySmallDisk;
DWORD dxRemovableDisk,
dyRemovableDisk,
xRemovableDisk,
yRemovableDisk;
DWORD BarLeftX,
BarWidth;
// if a single disk region is selected, these vars describe the selection.
PDISKSTATE SingleSel;
DWORD SingleSelIndex;
// name of help file
PTCHAR HelpFile;
TCHAR WinHelpFile[] = TEXT("windisk.hlp");
TCHAR LanmanHelpFile[] = TEXT("windiska.hlp");
// number of hard disks attached to the system
unsigned DiskCount = 0;
// class name for frame window
TCHAR szFrame[] = TEXT("fdFrame");
// "Disk %u"
LPTSTR DiskN;
PWSTR wszUnformatted,
wszNewUnformatted,
wszUnknown;
// If the following is TRUE, the registry needs to be updated and the user will
// be prompted to save changed just as if he had made changes to any partitions.
BOOL RegistryChanged = FALSE;
// Restart required to make changes work.
BOOL RestartRequired = FALSE;
// If the following is TRUE, the main window will pass WM_ENTERIDLE
// messages on to the child dialog box; this will trigger the
// configuration search.
BOOL ConfigurationSearchIdleTrigger = FALSE;
// This flag indicates whether this is a Server
// or just regular Windows NT Workstation.
BOOL IsLanmanNt = FALSE;
// This flag indicates whether double space volume creation
// and deletion is allowed.
BOOL IsFullDoubleSpace = FALSE;
// Cdrom is present in the system.
ULONG AllowCdRom = FALSE;