22 #include "../btrfsioctl.h" 33 #define WIN32_NO_STATUS 41 #define NO_SHLWAPI_STRFCNS 47 bool alloc_bqs2 =
false;
53 uint64_t recoverable_errors = 0, unrecoverable_errors = 0;
127 recoverable_errors++;
129 unrecoverable_errors++;
141 else if (bse->
metadata.firstitem.obj_id == 0 && bse->
metadata.firstitem.obj_type == 0 && bse->
metadata.firstitem.offset == 0)
151 else if (bse->
metadata.firstitem.obj_id == 0 && bse->
metadata.firstitem.obj_type == 0 && bse->
metadata.firstitem.offset == 0)
161 else if (bse->
data.subvol != 0)
171 else if (bse->
data.subvol != 0)
173 bse->
data.filename_length /
sizeof(
WCHAR), bse->
data.filename, bse->
data.offset);
176 bse->
data.filename, bse->
data.offset);
431 SetTimer(hwndDlg, 1, 1000,
nullptr);
502 tp.PrivilegeCount = 1;
503 tp.Privileges[0].Luid = luid;
524 if (
args.size() >= 1) {
537 tp.PrivilegeCount = 1;
538 tp.Privileges[0].Luid = luid;
560 if (
args.size() >= 1) {
573 tp.PrivilegeCount = 1;
574 tp.Privileges[0].Luid = luid;
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 * u
struct btrfs_scrub_error::@644::@646 data
#define FSCTL_BTRFS_QUERY_BALANCE
void CALLBACK StartScrubW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, int nCmdShow)
static PIO_STATUS_BLOCK iosb
void StartScrub(HWND hwndDlg)
#define BTRFS_SCRUB_STOPPED
BOOL WINAPI LookupPrivilegeValueW(LPCWSTR lpSystemName, LPCWSTR lpPrivilegeName, PLUID lpLuid)
#define IDC_SCRUB_PROGRESS
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
#define IDS_SCRUB_MSG_STARTED
#define IDS_SCRUB_MSG_RECOVERABLE_DATA
void StopScrub(HWND hwndDlg)
#define BTRFS_SCRUB_PAUSED
#define IDS_SCRUB_MSG_UNRECOVERABLE_DATA_SUBVOL
INT_PTR CALLBACK ScrubDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
#define LOCALE_USER_DEFAULT
#define IDS_SCRUB_MSG_UNRECOVERABLE_METADATA_FIRSTITEM
GLenum GLuint GLenum GLsizei const GLchar * message
void RefreshScrubDlg(HWND hwndDlg, bool first_time)
#define IDS_SCRUB_MSG_UNRECOVERABLE_DATA
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
NTSYSCALLAPI NTSTATUS NTAPI NtFsControlFile(HANDLE FileHandle, HANDLE Event, PIO_APC_ROUTINE ApcRoutine, PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG FsControlCode, PVOID InputBuffer, ULONG InputBufferLength, PVOID OutputBuffer, ULONG OutputBufferLength)
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
#define IDS_SCRUB_MSG_UNRECOVERABLE_METADATA
void CALLBACK StopScrubW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, int nCmdShow)
#define BTRFS_BALANCE_RUNNING
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
GLfloat GLfloat GLfloat GLfloat h
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
BOOL WINAPI SystemTimeToTzSpecificLocalTime(CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation, CONST SYSTEMTIME *lpUniversalTime, LPSYSTEMTIME lpLocalTime)
#define SE_PRIVILEGE_ENABLED
void error_message(HWND hwnd, const char *msg)
#define IDS_SCRUB_MSG_SUMMARY_ERRORS_UNRECOVERABLE
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 token
#define IDS_SCRUB_MSG_SUMMARY_ERRORS_RECOVERABLE
#define IDS_SCRUB_RUNNING
#define FSCTL_BTRFS_PAUSE_SCRUB
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
_In_ uint64_t _In_ uint64_t _In_ uint64_t _In_opt_ traverse_ptr * tp
void wstring_sprintf(wstring &s, wstring fmt,...)
void PauseScrub(HWND hwndDlg)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
#define FSCTL_BTRFS_RESUME_SCRUB
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define NT_SUCCESS(StatCode)
#define FSCTL_BTRFS_QUERY_SCRUB
void UpdateTextBox(HWND hwndDlg, btrfs_query_scrub *bqs)
#define FSCTL_BTRFS_START_SCRUB
#define FILE_SHARE_DELETE
#define GetCurrentProcess()
BOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
#define IDS_SCRUB_MSG_RECOVERABLE_PARITY
#define FSCTL_BTRFS_STOP_SCRUB
#define STATUS_BUFFER_OVERFLOW
static float(__cdecl *square_half_float)(float x
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LARGE_INTEGER finish_time
void command_line_to_args(LPWSTR cmdline, vector< wstring > &args)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
#define IDS_SCRUB_MSG_FINISHED
static int load_string(HINSTANCE hModule, UINT resId, LPWSTR pwszBuffer, INT cMaxChars)
#define IDS_SCRUB_BALANCE_RUNNING
#define FILE_FLAG_BACKUP_SEMANTICS
#define FILE_FLAG_OPEN_REPARSE_POINT
static INT_PTR CALLBACK stub_ScrubDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
#define MAKEINTRESOURCEW(i)
#define IDS_SCRUB_FINISHED
#define IDS_SCRUB_MSG_RECOVERABLE_METADATA
#define BTRFS_BALANCE_PAUSED
static struct msdos_boot_sector bs
#define TOKEN_ADJUST_PRIVILEGES
void CALLBACK ShowScrubW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, int nCmdShow)
#define IDS_SCRUB_MSG_SUMMARY
struct btrfs_scrub_error::@644::@647 metadata
#define STATUS_DEVICE_NOT_READY
void format_size(uint64_t size, wstring &s, bool show_bytes)