50 WCHAR wszDriveLetter[6], wszSystemDrv[6];
52 wszDriveLetter[0] = pContext->
Drive +
L'A';
58 if (!
_wcsicmp(wszDriveLetter, wszSystemDrv))
72 if (TotalNumberOfBytes->
QuadPart <= (16 * 1024 * 1024))
74 else if (TotalNumberOfBytes->
QuadPart <= (32 * 1024 * 1024))
76 else if (TotalNumberOfBytes->
QuadPart <= (64 * 1024 * 1024))
78 else if (TotalNumberOfBytes->
QuadPart <= (128 * 1024 * 1024))
80 else if (TotalNumberOfBytes->
QuadPart <= (256 * 1024 * 1024))
82 else if (TotalNumberOfBytes->
QuadPart <= (512 * 1024 * 1024))
84 else if (TotalNumberOfBytes->
QuadPart <= (1024 * 1024 * 1024))
86 else if (TotalNumberOfBytes->
QuadPart <= (2048LL * 1024LL * 1024LL))
88 else if (TotalNumberOfBytes->
QuadPart <= (4096LL * 1024LL * 1024LL))
95 if (TotalNumberOfBytes->
QuadPart <= (64 * 1024 * 1024))
97 else if (TotalNumberOfBytes->
QuadPart <= (128 * 1024 * 1024))
99 else if (TotalNumberOfBytes->
QuadPart <= (256 * 1024 * 1024))
101 else if (TotalNumberOfBytes->
QuadPart <= (8192LL * 1024LL * 1024LL))
103 else if (TotalNumberOfBytes->
QuadPart <= (16384LL * 1024LL * 1024LL))
105 else if (TotalNumberOfBytes->
QuadPart <= (32768LL * 1024LL * 1024LL))
112 if (TotalNumberOfBytes->
QuadPart <= (16 * 1024 * 1024))
114 else if (TotalNumberOfBytes->
QuadPart <= (32 * 1024 * 1024))
116 else if (TotalNumberOfBytes->
QuadPart <= (64 * 1024 * 1024))
118 else if (TotalNumberOfBytes->
QuadPart <= (128 * 1024 * 1024))
120 else if (TotalNumberOfBytes->
QuadPart <= (256 * 1024 * 1024))
122 else if (TotalNumberOfBytes->
QuadPart <= (8192LL * 1024LL * 1024LL))
124 else if (TotalNumberOfBytes->
QuadPart <= (16384LL * 1024LL * 1024LL))
126 else if (TotalNumberOfBytes->
QuadPart <= (32768LL * 1024LL * 1024LL))
133 if (TotalNumberOfBytes->
QuadPart <= (512 * 1024 * 1024))
135 else if (TotalNumberOfBytes->
QuadPart <= (1024 * 1024 * 1024))
137 else if (TotalNumberOfBytes->
QuadPart <= (2048LL * 1024LL * 1024LL))
162 WCHAR wszBuf[100] = {0};
163 WCHAR wszDefaultSize[100] = {0};
165 WCHAR szDrive[] =
L"C:\\";
180 szDrive[0] = pContext->
Drive +
L'A';
188 pwszFsSizeLimit =
L"4GB";
192 pwszFsSizeLimit =
L"32GB";
196 pwszFsSizeLimit =
L"1GB/32GB";
200 pwszFsSizeLimit =
L"256TB";
204 pwszFsSizeLimit =
L"32TB";
208 pwszFsSizeLimit =
L"16EB";
221 TRACE(
"%S is not supported on drive larger than %S, current size: %lu\n", wszBuf, pwszFsSizeLimit, TotalNumberOfBytes.
QuadPart);
239 for (lIndex = 0; lIndex < 4; lIndex++)
268 FIXME(
"Unknown filesystem: %ls\n", wszBuf);
278 WCHAR szDrive[] =
L"C:\\";
282 DWORD dwIndex, dwDefault;
283 UCHAR uMinor, uMajor;
285 HWND hwndFileSystems;
291 szDrive[0] = pContext->
Drive +
L'A';
344 ERR(
"no filesystem providers\n");
368 Progress = (
PDWORD)ActionInfo;
383 FIXME(
"Unsupported command in FormatExCB\n");
396 WCHAR szDrive[4] = {
L'C',
':',
'\\', 0 };
397 WCHAR szFileSys[40] = {0};
398 WCHAR szLabel[40] = {0};
408 szDrive[0] = pContext->
Drive +
L'A';
415 ERR(
"Unable to get file system selection\n");
421 ERR(
"Unable to get file system selection\n");
427 szFileSys[
_countof(szFileSys)-1] =
L'\0';
434 ERR(
"Unable to get volume label\n");
438 szLabel[(
sizeof(szLabel)/
sizeof(
WCHAR))-1] =
L'\0';
641 TRACE(
"SHFormatDrive(): The provided drive for format is a system volume! Aborting...\n");
#define shell32_hInstance
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
#define GetEnvironmentVariableW(x, y, z)
BOOLEAN NTAPI QueryAvailableFileSystemFormat(IN DWORD Index, IN OUT PWCHAR FileSystem, OUT UCHAR *Major, OUT UCHAR *Minor, OUT BOOLEAN *LatestVersion)
BOOL WINAPI GetDiskFreeSpaceExW(IN LPCWSTR lpDirectoryName OPTIONAL, OUT PULARGE_INTEGER lpFreeBytesAvailableToCaller, OUT PULARGE_INTEGER lpTotalNumberOfBytes, OUT PULARGE_INTEGER lpTotalNumberOfFreeBytes)
UINT WINAPI GetDriveTypeW(IN LPCWSTR lpRootPathName)
BOOL WINAPI GetVolumeInformationW(IN LPCWSTR lpRootPathName, IN LPWSTR lpVolumeNameBuffer, IN DWORD nVolumeNameSize, OUT LPDWORD lpVolumeSerialNumber OPTIONAL, OUT LPDWORD lpMaximumComponentLength OPTIONAL, OUT LPDWORD lpFileSystemFlags OPTIONAL, OUT LPWSTR lpFileSystemNameBuffer OPTIONAL, IN DWORD nFileSystemNameSize)
static HWND FormatDrvDialog
struct FORMAT_DRIVE_CONTEXT * PFORMAT_DRIVE_CONTEXT
static BOOLEAN NTAPI FormatExCB(IN CALLBACKCOMMAND Command, IN ULONG SubAction, IN PVOID ActionInfo)
static INT_PTR CALLBACK FormatDriveDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static BOOL GetDefaultClusterSize(LPWSTR szFs, PDWORD pClusterSize, PULARGE_INTEGER TotalNumberOfBytes)
VOID FormatDrive(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext)
static BOOL IsSystemDrive(PFORMAT_DRIVE_CONTEXT pContext)
static VOID InitializeFormatDriveDlg(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext)
DWORD WINAPI SHFormatDrive(HWND hwnd, UINT drive, UINT fmtID, UINT options)
static unsigned __stdcall DoFormatDrive(void *args)
static VOID InsertDefaultClusterSizeForFs(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext)
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
_In_ ULONG _In_ ULONG _In_ ULONG Length
_CRTIMP uintptr_t __cdecl _beginthreadex(_In_opt_ void *_Security, _In_ unsigned _StackSize, _In_ unsigned(__stdcall *_StartAddress)(void *), _In_opt_ void *_ArgList, _In_ unsigned _InitFlag, _Out_opt_ unsigned *_ThrdAddr)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define IDS_FORMAT_COMPLETE
#define IDS_NO_FORMAT_TITLE
#define IDS_FORMAT_WARNING
#define IDS_DEFAULT_CLUSTER_SIZE
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
#define DRIVE_NO_ROOT_DIR
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
HMENU WINAPI GetSystemMenu(_In_ HWND, _In_ BOOL)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
#define MB_ICONINFORMATION
#define MAKEINTRESOURCEW(i)
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)