71 return (wszSystemDrv[0] | 32) == pContext->
Drive +
L'a';
77 const WCHAR szPath[] = {
'\\',
'\\',
'?',
'\\',
WCHAR(DriveNumber +
'A'),
':',
'\0' };
86 const WCHAR szDrivePath[] = {
WCHAR(DriveNumber +
'A'),
':',
'\\',
'\0' };
103 if (!bSuccess || !
Result.QuadPart)
118 if (Ctx.
Tip.Name.Buffer && Ctx.
Tip.Name.Buffer[0] ==
'\\')
159 if (TotalNumberOfBytes->
QuadPart <= (16 * 1024 * 1024))
161 else if (TotalNumberOfBytes->
QuadPart <= (32 * 1024 * 1024))
163 else if (TotalNumberOfBytes->
QuadPart <= (64 * 1024 * 1024))
165 else if (TotalNumberOfBytes->
QuadPart <= (128 * 1024 * 1024))
167 else if (TotalNumberOfBytes->
QuadPart <= (256 * 1024 * 1024))
169 else if (TotalNumberOfBytes->
QuadPart <= (512 * 1024 * 1024))
171 else if (TotalNumberOfBytes->
QuadPart <= (1024 * 1024 * 1024))
173 else if (TotalNumberOfBytes->
QuadPart <= (2048LL * 1024LL * 1024LL))
175 else if (TotalNumberOfBytes->
QuadPart <= (4096LL * 1024LL * 1024LL))
182 if (TotalNumberOfBytes->
QuadPart <= (64 * 1024 * 1024))
184 else if (TotalNumberOfBytes->
QuadPart <= (128 * 1024 * 1024))
186 else if (TotalNumberOfBytes->
QuadPart <= (256 * 1024 * 1024))
188 else if (TotalNumberOfBytes->
QuadPart <= (8192LL * 1024LL * 1024LL))
190 else if (TotalNumberOfBytes->
QuadPart <= (16384LL * 1024LL * 1024LL))
192 else if (TotalNumberOfBytes->
QuadPart <= (32768LL * 1024LL * 1024LL))
199 if (TotalNumberOfBytes->
QuadPart <= (16 * 1024 * 1024))
201 else if (TotalNumberOfBytes->
QuadPart <= (32 * 1024 * 1024))
203 else if (TotalNumberOfBytes->
QuadPart <= (64 * 1024 * 1024))
205 else if (TotalNumberOfBytes->
QuadPart <= (128 * 1024 * 1024))
207 else if (TotalNumberOfBytes->
QuadPart <= (256 * 1024 * 1024))
209 else if (TotalNumberOfBytes->
QuadPart <= (8192LL * 1024LL * 1024LL))
211 else if (TotalNumberOfBytes->
QuadPart <= (16384LL * 1024LL * 1024LL))
213 else if (TotalNumberOfBytes->
QuadPart <= (32768LL * 1024LL * 1024LL))
220 if (TotalNumberOfBytes->
QuadPart <= (512 * 1024 * 1024))
222 else if (TotalNumberOfBytes->
QuadPart <= (1024 * 1024 * 1024))
224 else if (TotalNumberOfBytes->
QuadPart <= (2048LL * 1024LL * 1024LL))
249 WCHAR wszBuf[100] = {0};
250 WCHAR wszDefaultSize[100] = {0};
272 pwszFsSizeLimit =
L"4GB";
276 pwszFsSizeLimit =
L"32GB";
280 pwszFsSizeLimit =
L"1GB/32GB";
284 pwszFsSizeLimit =
L"256TB";
288 pwszFsSizeLimit =
L"32TB";
292 pwszFsSizeLimit =
L"16EB";
305 TRACE(
"%S is not supported on drive larger than %S, current size: %lu\n", wszBuf, pwszFsSizeLimit, TotalNumberOfBytes.
QuadPart);
323 for (lIndex = 0; lIndex < 4; lIndex++)
354 FIXME(
"Unknown filesystem: %ls\n", wszBuf);
363 BOOL CanClose = EnableState != 0,
Enable = EnableState > 0;
367 static const WORD id[] = {
IDOK, 28673, 28677, 28680, 28679, 28674 };
376 WCHAR szText[120], szFs[30];
379 DWORD dwIndex, dwDefault;
380 UCHAR uMinor, uMajor;
382 HWND hwndFileSystems;
387 tool.
cbSize =
sizeof(tool);
449 int iForceDefault = -1;
453 iForceDefault = dwDefault = dwIndex;
464 ERR(
"no filesystem providers\n");
495 Progress = (
PDWORD)ActionInfo;
500 pCtx->
Result = (*pSuccess);
513 FIXME(
"Unsupported command in FormatExCB\n");
542 ERR(
"Unable to get file system selection\n");
548 ERR(
"Unable to get file system selection\n");
554 szFileSys[
_countof(szFileSys)-1] =
L'\0';
561 ERR(
"Unable to get volume label\n");
565 szLabel[(
sizeof(szLabel)/
sizeof(
WCHAR))-1] =
L'\0';
721 ttdi.lpszText = pszTip;
731 tool.
cbSize =
sizeof(tool);
738 r.left += (
r.right -
r.left) / 2;
739 r.top += (
r.bottom -
r.top) / 2;
782 TRACE(
"SHFormatDrive(): The provided drive for format is a system volume! Aborting...\n");
NTSTATUS NtQueryObject(IN HANDLE Handle, IN OBJECT_INFO_CLASS ObjectInformationClass, OUT PVOID ObjectInformation, IN ULONG ObjectInformationLength, OUT PULONG ReturnLength)
#define shell32_hInstance
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
#define IOCTL_DISK_GET_DRIVE_GEOMETRY
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
BOOL WINAPI DeviceIoControl(IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer OPTIONAL, IN DWORD nInBufferSize OPTIONAL, OUT LPVOID lpOutBuffer OPTIONAL, IN DWORD nOutBufferSize OPTIONAL, OUT LPDWORD lpBytesReturned OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
#define INVALID_HANDLE_VALUE
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)
BOOL WINAPI SetVolumeLabelW(IN LPCWSTR lpRootPathName, IN LPCWSTR lpVolumeName OPTIONAL)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
static BOOL DevIoCtl(HANDLE hDevice, UINT Code, LPVOID pIn, UINT cbIn, LPVOID pOut, UINT cbOut)
static BOOL GetLogicalDriveSize(WORD DriveNumber, ULARGE_INTEGER &Result)
static HANDLE OpenLogicalDriveHandle(WORD DriveNumber)
struct FORMAT_DRIVE_CONTEXT * PFORMAT_DRIVE_CONTEXT
static BOOLEAN NTAPI FormatExCB(IN CALLBACKCOMMAND Command, IN ULONG SubAction, IN PVOID ActionInfo)
static BOOL IsFloppy(PCWSTR pszDrive)
static PWSTR CreateTipText(FORMAT_DRIVE_CONTEXT &Ctx)
static INT_PTR CALLBACK FormatDriveDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static BOOL GetDefaultClusterSize(LPWSTR szFs, PDWORD pClusterSize, PULARGE_INTEGER TotalNumberOfBytes)
static PFORMAT_DRIVE_CONTEXT GetFormatContext()
static VOID EnableFormatDriveDlgControls(HWND hwndDlg, int EnableState)
static DWORD CALLBACK FormatDriveThread(PVOID pThreadParameter)
BOOL IsDriveFloppyW(LPCWSTR pszDriveRoot)
static 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 VOID InsertDefaultClusterSizeForFs(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext)
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE pfnThreadProc, VOID *pData, DWORD dwFlags, LPTHREAD_START_ROUTINE pfnCallback)
#define IOCTL_DISK_GET_PARTITION_INFO_EX
GLdouble GLdouble GLdouble r
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define IOCTL_DISK_GET_LENGTH_INFO
static HMODULE MODULEINFO DWORD cb
static const WCHAR szGuid[]
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
unsigned __int3264 UINT_PTR
#define FILE_SHARE_DELETE
#define IOCTL_DISK_GET_PARTITION_INFO
_In_ ULONG _In_ ULONG _In_ ULONG Length
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
#define LPSTR_TEXTCALLBACKW
#define TTM_TRACKPOSITION
#define TTM_TRACKACTIVATE
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define SHCNE_MEDIAINSERTED
#define SHCNE_MEDIAREMOVED
#define CTF_FREELIBANDEXIT
#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 StringCbCatW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
struct FORMAT_DRIVE_CONTEXT::tagTip Tip
PVOID ArbitraryUserPointer
_In_ UCHAR _In_ UCHAR _In_ ULONG Code
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
#define DRIVE_NO_ROOT_DIR
#define GetSystemDirectory
HWND WINAPI GetFocus(void)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
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)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
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)
int WINAPI GetSystemMetrics(_In_ int)
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)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO