29#define InstallVolume (InstallPartition->Volume)
34#define SystemVolume (SystemPartition->Volume)
84 NONCLIENTMETRICSW ncm;
85 ncm.cbSize =
sizeof(ncm);
87 lf = ncm.lfMessageFont;
185 WCHAR StaticBuffer[256];
308 WCHAR ResBuffer[256];
310 PWSTR ResFmt = ResBuffer;
334 if (ResFmt && (ResFmt != ResBuffer))
464 if (pSetupData->NtOsInstallsList &&
602 IN const INT* pColsWidth,
603 IN const INT* pColsAlign,
612 lvC.pszText = szText;
615 for (
i = 0;
i < nNumOfColumns;
i++)
618 lvC.cx = pColsWidth[
i];
619 lvC.fmt = pColsAlign[
i];
645 WCHAR CurrentItemText[256];
653 if (GetEntryDescriptionProc)
655 GetEntryDescriptionProc(ListEntry,
665 if (ListEntry ==
List->CurrentEntry)
666 CurrentEntryIndex =
Index;
701 INT CurrentEntryIndex = 0;
705 WCHAR CurrentItemText[256];
713 if (!AddEntryItemProc)
722 if (ListEntry ==
List->CurrentEntry)
723 CurrentEntryIndex = lvItem.iItem;
792 plvItem->iSubItem = 0;
810 plvItem->iSubItem = 1;
811 plvItem->pszText =
Buffer;
814 plvItem->iSubItem = 2;
820#define IDS_LIST_COLUMN_FIRST IDS_INSTALLATION_NAME
821#define IDS_LIST_COLUMN_LAST IDS_INSTALLATION_VENDOR
823#define MAX_LIST_COLUMNS (IDS_LIST_COLUMN_LAST - IDS_LIST_COLUMN_FIRST + 1)
908 if (pnmv->
iItem != -1)
1155 static WCHAR szOrgWizNextBtnText[260];
1194 WCHAR CurrentItemText[256];
1211 L"Upgrading/Repairing \"%s\" from \"%s\"",
1218 L"New ReactOS installation");
1249 L"%c: \x2014 Harddisk %lu, Partition %lu",
1263 L"Harddisk %lu, Partition %lu",
1278 szOrgWizNextBtnText,
ARRAYSIZE(szOrgWizNextBtnText));
1374 DPRINT(
"%lu percent completed\n", *Percent);
1394 DPRINT(
"FormatEx was unable to complete successfully.\n\n");
1438 switch (FormatStatus)
1573 else if (nRet ==
IDOK)
1613 else if (nRet ==
IDOK)
1776 PCWSTR SrcFileName, DstFileName;
1812 if (DstFileName) ++DstFileName;
1813 else DstFileName = FilePathInfo->
Target;
1828 if (SrcFileName) ++SrcFileName;
1829 else SrcFileName = FilePathInfo->
Source;
1832 if (DstFileName) ++DstFileName;
1833 else DstFileName = FilePathInfo->
Target;
1835 if (!
_wcsicmp(SrcFileName, DstFileName))
1842 SrcFileName, DstFileName);
1850 if (DstFileName) ++DstFileName;
1851 else DstFileName = FilePathInfo->
Target;
1876 DPRINT1(
"An error happened while trying to copy file '%S' (error 0x%08lx), skipping it...\n",
1889 DPRINT1(
"CHECKPOINT:HALF_COPIED\n");
1904 static const UINT StringIDs[] =
1916 if (RegStatus <
_countof(StringIDs))
1949#define PM_INSTALL_START (WM_APP + 1)
1950#define PM_INSTALL_DONE (WM_APP + 2)
2189 static const WCHAR DriveLetter =
L'A';
2195 L"Bootloader installation",
2196 L"Please insert a blank floppy disk in drive %c: .\n"
2197 L"All data in the floppy disk will be erased!\n"
2198 L"\nClick on OK to continue."
2199 L"\nClick on CANCEL to skip bootloader installation.",
2218 L"No disk detected in drive %c: .",
2234 DPRINT1(
"InstallBootcodeToRemovable() failed: Status 0x%lx\n",
Status);
2284 DPRINT1(
"InstallBootManagerAndBootEntries() failed: Status 0x%lx\n",
Status);
2476#ifdef TERMINATE_USE_PRESSBUTTON
2496#ifdef TERMINATE_USE_PRESSBUTTON
2527 L"Cannot create the install event, error %lu\n",
GetLastError());
2539 L"Cannot create the installation thread, error %lu\n",
GetLastError());
2545#ifdef TERMINATE_USE_PRESSBUTTON
2569 AutoSwitchPage =
FALSE;
2592 if (!AutoSwitchPage)
2595#ifdef TERMINATE_USE_PRESSBUTTON
2625 if (!(hWndProgman &&
IsWindow(hWndProgman) &&
2630 return (hWndProgman &&
IsWindow(hWndProgman) &&
2661 mii.
cbSize =
sizeof(mii);
2670 return !pInfo->
Found;
2847 RECT rcBtn1, rcBtn2;
2923 if (!pSetupData->PartitionList)
2925 DPRINT1(
"Could not enumerate available disks; failing installation\n");
2930 if (!pSetupData->NtOsInstallsList)
2931 DPRINT1(
"Failed to get a list of NTOS installations; continue installation...\n");
2939 pSetupData->USetupData.LanguageList =
CreateLanguageList(pSetupData->USetupData.SetupInf, pSetupData->DefaultLanguage);
2943 if (!pSetupData->bUnattend)
2948 _countof(pSetupData->DefaultLanguage),
2949 L"%08lx", LocaleID);
2952 _countof(pSetupData->USetupData.LocaleID),
2953 L"%08lx", LocaleID);
2957 pSetupData->SelectedLanguageId = pSetupData->DefaultLanguage;
2958 wcscpy(pSetupData->DefaultLanguage, pSetupData->USetupData.LocaleID);
2959 pSetupData->USetupData.LanguageId = (
LANGID)(
wcstol(pSetupData->SelectedLanguageId,
NULL, 16) & 0xFFFF);
2962 pSetupData->SelectedLanguageId,
2963 pSetupData->DefaultKBLayout);
2967 if (!pSetupData->bUnattend)
2976 PGENERIC_LIST LanguageList = pSetupData->USetupData.LanguageList;
2977 PGENERIC_LIST LayoutList = pSetupData->USetupData.LayoutList;
3000 if (( pSetupData->bUnattend && !
_wcsicmp(pSetupData->DefaultLanguage, pszLayoutId)) ||
3001 (!pSetupData->bUnattend && !
_wcsicmp(pSetupData->DefaultKBLayout, pszLayoutId)))
3003 DPRINT(
"Found %S in LayoutList\n", pszLayoutId);
3018 MappingList->MappingsCount = 0;
3035 MappingList->MappingsCount = 0;
3052 PCWSTR pwszNtPathToMap = pwszNTPath;
3056 WCHAR wszDrives[512];
3070 for (ListEntry = MappingList->List.
Flink;
3071 ListEntry != &MappingList->List;
3072 ListEntry = ListEntry->
Flink)
3085 pwszDrive =
Entry->Win32Path;
3086 pwszRemaining = pwszNTPath +
wcslen(
Entry->NtPath);
3097 if (cchDrives == 0 || cchDrives >=
_countof(wszDrives))
3100 DPRINT1(
"ConvertNtPathToWin32Path: GetLogicalDriveStringsW failed\n");
3108 for (pwszDrive = wszDrives; *pwszDrive; pwszDrive +=
wcslen(pwszDrive) + 1)
3113 pwszDrive[2] =
L'\\';
3115 DPRINT(
"Testing '%S' --> '%S'\n", pwszDrive, wszNTPath);
3118 FoundDrive = !
_wcsnicmp(pwszNtPathToMap, wszNTPath,
wcslen(wszNTPath));
3147 if (pwszDrive[0] !=
ptr[1])
3149 DPRINT1(
"Peculiar: expected network share drive letter %C different from actual one %C\n",
3150 pwszDrive[0],
ptr[1]);
3156 while (*ptr2 ==
L'\\') ++ptr2;
3161 FoundDrive = !
_wcsnicmp(pwszNtPathToMap, wszNTPath,
wcslen(wszNTPath));
3170 if (pwszNtPathToMap == pwszNTPath)
3172 ASSERT(!RetryOnce && pwszNTPath != TargetPath);
3173 pwszRemaining = pwszNTPath +
wcslen(wszNTPath);
3185 DPRINT1(
"ConvertNtPathToWin32Path: Cannot allocate memory\n");
3189 pwszNTPath, pwszRemaining - pwszNTPath);
3194 MappingList->MappingsCount++;
3197 pwszDrive =
Entry->Win32Path;
3222 if (!RetryOnce && !FoundDrive)
3232 if (
swscanf(pwszNTPath,
L"\\Device\\Harddisk%lu\\Partition%lu%n",
3240 RtlInitEmptyUnicodeString(&SymLink, (
PWCHAR)pwszNTPath,
Length *
sizeof(
WCHAR));
3254 DPRINT1(
"ConvertNtPathToWin32Path: NtOpenSymbolicLinkObject(%wZ) failed, Status 0x%08lx\n",
3260 RtlInitEmptyUnicodeString(&
Target, TargetPath,
sizeof(TargetPath));
3270 DPRINT1(
"ConvertNtPathToWin32Path: NtQuerySymbolicLinkObject(%wZ) failed, Status 0x%08lx\n",
3276 pwszRemaining = pwszNTPath +
Length;
3277 pwszNtPathToMap = TargetPath;
3293 DPRINT(
"ConvertNtPathToWin32Path: %S\n", pwszPath);
3304 IN BOOL bEnablePrivilege)
3317 &
tp.Privileges[0].Luid);
3320 tp.PrivilegeCount = 1;
3337 DPRINT(
"HotkeyThread start\n");
3375 DPRINT(
"HotkeyThread terminate\n");
3390 return SetupDllPath;
3410 PathSize =
_countof(SetupDllPath) - (
pch - SetupDllPath);
3419 return SetupDllPath;
3422#ifndef DECLARE_UNICODE_STRING_SIZE
3423#define DECLARE_UNICODE_STRING_SIZE(_var, _size) \
3424 WCHAR _var ## _buffer[_size]; \
3425 UNICODE_STRING _var = { 0, (_size) * sizeof(WCHAR) , _var ## _buffer }
3428#define DELAYIMP_INSECURE_WRITABLE_HOOKS
3454 if (setupDllPath && *setupDllPath &&
3456 setupDllPath, pdli->
szDll)))
3458 pdli->
szDll = dllPath;
3505#include <pshpack1.h>
3580 DWORD dwStyle = 0, dwStyleMask = 0;
3589 dwStyleMask |= dwStyle;
3593 dlgTemplateEx->
style = (dlgTemplateEx->
style & ~dwStyleMask) | (dwStyle & dwStyleMask);
3595 dlgTemplate->
style = (dlgTemplate->
style & ~dwStyleMask) | (dwStyle & dwStyleMask);
3640 {
FALSE, PSP_HIDEHEADER,
3644 {
FALSE, PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE,
3650 {
FALSE, PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE,
3660 {
TRUE, PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE,
3666 {
TRUE, PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE,
3672 {
TRUE, PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE,
3678 {
TRUE, PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE,
3684 {
TRUE, PSP_HIDEHEADER,
3689 {
TRUE, PSP_HIDEHEADER,
3707#define REACTOS_SETUP_MUTEX L"__ReactOS_Setup__"
3726 WCHAR szCaption[128];
3740 if (
Title != szCaption)
3815 iccx.
dwSize =
sizeof(iccx);
3828 psp.
dwSize =
sizeof(psp);
3850 psp.pszHeaderSubTitle =
WizardPages[
i].pszHeaderSubTitle;
3855 psh.
dwSize =
sizeof(psh);
static HWND hWndList[5+1]
BOOLEAN NTAPI PrepareFileCopy(IN OUT PUSETUP_DATA pSetupData, IN PFILE_COPY_STATUS_ROUTINE StatusRoutine OPTIONAL)
BOOLEAN NTAPI DoFileCopy(IN OUT PUSETUP_DATA pSetupData, IN PSP_FILE_CALLBACK_W MsgHandler, IN PVOID Context OPTIONAL)
PGENERIC_LIST CreateKeyboardDriverList(IN HINF InfFile)
PGENERIC_LIST CreateComputerTypeList(IN HINF InfFile)
PGENERIC_LIST CreateDisplayDriverList(IN HINF InfFile)
PGENERIC_LIST CreateKeyboardLayoutList(IN HINF InfFile, IN PCWSTR LanguageId, OUT PWSTR DefaultKBLayout)
PGENERIC_LIST CreateLanguageList(IN HINF InfFile, OUT PWSTR DefaultLanguage)
struct _GENENTRY * PGENENTRY
PfnDliHook __pfnDliFailureHook2
VOID __cdecl SetWindowResPrintfW(_In_ HWND hWnd, _In_opt_ HINSTANCE hInstance, _In_ UINT uID,...)
static VOID CenterWindow(HWND hWnd)
VOID PropSheet_SetCloseCancel(_In_ HWND hWndWiz, _In_ BOOL Enable)
Enable or disable the Cancel and the Close title-bar property-sheet buttons.
static INT_PTR CALLBACK ProcessDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
struct _FSVOL_CONTEXT FSVOL_CONTEXT
static VOID __cdecl RegistryStatus(IN REGISTRY_STATUS RegStatus,...)
PVOID GetSelectedListViewItem(IN HWND hWndList)
static FSVOL_OP CALLBACK FsVolCallback(_In_opt_ PVOID Context, _In_ FSVOLNOTIFY FormatStatus, _In_ ULONG_PTR Param1, _In_ ULONG_PTR Param2)
struct _COPYCONTEXT * PCOPYCONTEXT
static BOOL IsShellActive(VOID)
Detects whether a Windows shell is active.
struct DLGTEMPLATEEX * LPDLGTEMPLATEEX
static INT_PTR CALLBACK TypeDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
static FARPROC WINAPI setupDelayHook(unsigned dliNotify, PDelayLoadInfo pdli)
Controls the delay-loading of Setup DLLs from a suitable path.
static const INT column_widths[MAX_LIST_COLUMNS]
#define DECLARE_UNICODE_STRING_SIZE(_var, _size)
static BOOLEAN NTAPI FormatCallback(_In_ CALLBACKCOMMAND Command, _In_ ULONG Modifier, _In_ PVOID Argument)
PfnDliHook __pfnDliNotifyHook2
Custom delay-loading hooks for loading the Setup DLLs from a suitable path.
static PCWSTR GetLocalSetupDllPath(VOID)
static HFONT CreateBoldFont(_In_opt_ HFONT hOrigFont, _In_opt_ INT PointSize)
Create a bold font derived from the provided font.
static BOOL AreThereInteractiveWindows(_In_opt_ HWND hWndExclude)
Detects whether there exist interactive closable windows opened.
BOOL ConvertNtPathToWin32Path(IN OUT PNT_WIN32_PATH_MAPPING_LIST MappingList, OUT PWSTR pwszPath, IN DWORD cchPathMax, IN PCWSTR pwszNTPath)
BOOL LoadSetupData(IN OUT PSETUPDATA pSetupData)
static const INT column_alignment[MAX_LIST_COLUMNS]
static INT_PTR CALLBACK UpgradeRepairDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
static HFONT CreateTitleFont(_In_opt_ HFONT hOrigFont)
#define REACTOS_SETUP_MUTEX
PPARTENTRY InstallPartition
PVOID GetSelectedComboListItem(IN HWND hWndList)
size_t LoadAllocStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _In_opt_ _Outptr_ PWSTR *pString, _In_opt_ size_t cchBufferLen)
static int CALLBACK PropSheetCallback(_In_ HWND hDlg, _In_ UINT message, _In_ LPARAM lParam)
VOID InitGenericListView(IN HWND hWndList, IN PGENERIC_LIST List, IN PADD_ENTRY_ITEM AddEntryItemProc)
INT __cdecl DisplayError(_In_opt_ HWND hWnd, _In_ UINT uIDTitle, _In_ UINT uIDMessage,...)
VOID SetWindowResPrintfVW(_In_ HWND hWnd, _In_opt_ HINSTANCE hInstance, _In_ UINT uID, _In_ va_list args)
static INT_PTR CALLBACK FinishDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
struct _FSVOL_CONTEXT * PFSVOL_CONTEXT
VOID FreeNtToWin32PathMappingList(IN OUT PNT_WIN32_PATH_MAPPING_LIST MappingList)
static const struct @76 WizardPages[]
BOOL CreateListViewColumns(IN HINSTANCE hInstance, IN HWND hWndListView, IN const UINT *pIDs, IN const INT *pColsWidth, IN const INT *pColsAlign, IN UINT nNumOfColumns)
struct _CLOSABLE_WND_INFO CLOSABLE_WND_INFO
static VOID NTAPI GetSettingDescription(IN PGENERIC_LIST_ENTRY Entry, OUT PWSTR Buffer, IN SIZE_T cchBufferSize)
#define IDS_LIST_COLUMN_FIRST
VOID(NTAPI * PADD_ENTRY_ITEM)(IN HWND hWndList, IN LVITEM *plvItem, IN PGENERIC_LIST_ENTRY Entry, IN OUT PWSTR Buffer, IN SIZE_T cchBufferSize)
static INT_PTR CALLBACK DeviceDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
static INT_PTR CALLBACK SummaryDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
INT __cdecl DisplayMessage(_In_opt_ HWND hWnd, _In_ UINT uType, _In_opt_ PCWSTR pszTitle, _In_opt_ PCWSTR pszFormatMessage,...)
VOID InitNtToWin32PathMappingList(IN OUT PNT_WIN32_PATH_MAPPING_LIST MappingList)
VOID(NTAPI * PGET_ENTRY_DESCRIPTION)(IN PGENERIC_LIST_ENTRY Entry, OUT PWSTR Buffer, IN SIZE_T cchBufferSize)
size_t FormatAllocStringWV(_In_opt_ _Outptr_ PWSTR *pString, _In_opt_ size_t cchBufferLen, _In_ PCWSTR pszFormat, _In_ va_list args)
static HANDLE CheckForOtherInstance(_In_ HINSTANCE hInstance)
Ensure only one ReactOS Setup instance is running. If another instance already exists,...
PPARTENTRY SystemPartition
struct _CLOSABLE_WND_INFO * PCLOSABLE_WND_INFO
VOID SetWindowResTextW(_In_ HWND hWnd, _In_opt_ HINSTANCE hInstance, _In_ UINT uID)
static VOID NTAPI AddNTOSInstallationItem(IN HWND hWndList, IN LVITEM *plvItem, IN PGENERIC_LIST_ENTRY Entry, IN OUT PWSTR Buffer, IN SIZE_T cchBufferSize)
static LRESULT CALLBACK PrshtWndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
static INT_PTR CALLBACK StartDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
INT DisplayMessageV(_In_opt_ HWND hWnd, _In_ UINT uType, _In_opt_ PCWSTR pszTitle, _In_opt_ PCWSTR pszFormatMessage, _In_ va_list args)
BOOL IncludeForUnattended
struct _COPYCONTEXT COPYCONTEXT
static DWORD CALLBACK HotkeyThread(LPVOID Parameter)
BOOL EnablePrivilege(IN LPCWSTR lpszPrivilegeName, IN BOOL bEnablePrivilege)
static BOOL CALLBACK FindUserClosableWindowProc(_In_ HWND hWnd, _In_ LPARAM lParam)
static const UINT column_ids[MAX_LIST_COLUMNS]
VOID InitGenericComboList(IN HWND hWndList, IN PGENERIC_LIST List, IN PGET_ENTRY_DESCRIPTION GetEntryDescriptionProc)
static DWORD WINAPI PrepareAndDoCopyThread(IN LPVOID Param)
static UINT CALLBACK FileCopyCallback(PVOID Context, UINT Notification, UINT_PTR Param1, UINT_PTR Param2)
#define SETUP_ABORT_INSTALL
#define SETUP_PAGE_SWITCHING
#define ShowDlgItem(hDlg, nID, nCmdShow)
#define SetDlgItemFont(hDlg, nID, hFont, bRedraw)
#define SETUP_IS_CANCELLING
struct _SETUPDATA * PSETUPDATA
#define InterlockedFlagsTestAndSet8(Target, Flags)
#define IDS_ERROR_SYSTEM_PARTITION
#define IDS_ABORT_NO_REBOOT
#define IDS_CONFIG_SYSTEM_PARTITION
#define IDS_ERROR_FORMAT_UNRECOGNIZED_VOLUME
#define IDS_DRIVESUBTITLE
#define IDS_PROCESSSUBTITLE
#define IDS_FORMATTING_PROGRESS1
#define IDS_COPYING_FILES
#define IDS_ERROR_BOOTLDR_FAILED
#define IDS_ERROR_COULD_NOT_CHECK
#define IDS_REG_REGHIVEUPDATE
#define IDS_REG_CODEPAGEINFOUPDATE
#define IDS_UPDATESUBTITLE
#define IDS_PREPARE_FILES
#define IDS_REG_IMPORTFILE
#define IDS_PREPARE_PARTITIONS
#define IDS_ERROR_CHECKING_PARTITION
#define IDS_ERROR_BOOTLDR_ARCH_UNSUPPORTED
#define IDS_ERROR_COULD_NOT_FORMAT
#define IDS_REG_KEYBOARDSETTINGSUPDATE
#define IDC_PROCESSPROGRESS
#define IDS_ERROR_INSTALL_BOOTCODE
#define IDS_ERROR_WRITE_BOOT
#define IDC_CONFIRM_INSTALL
#define IDS_ERROR_INSTALL_BOOTCODE_REMOVABLE
#define IDS_CHECKING_PROGRESS2
#define IDS_REG_ADDKBLAYOUTS
#define IDS_CHECKING_PROGRESS1
#define IDS_UPDATE_REGISTRY
#define IDS_NO_TXTSETUP_SIF
#define IDS_REG_LOCALESETTINGSUPDATE
#define IDD_UPDATEREPAIRPAGE
#define IDS_DEVICESUBTITLE
#define IDS_FORMATTING_PROGRESS2
#define IDS_SUMMARYSUBTITLE
#define IDS_REG_DISPLAYSETTINGSUPDATE
#define IDS_FINISH_NO_REBOOT
#define IDS_INSTALL_BOOTLOADER
#define IDS_CREATE_REGISTRY
#define IDC_INSTALLSOURCE
#define IDC_RESTART_PROGRESS
#define IDS_ERROR_WRITE_PTABLE
#define IDS_ERROR_FORMATTING_PARTITION
NTSTATUS NTAPI InstallBootcodeToRemovable(_In_ ARCHITECTURE_TYPE ArchType, _In_ PCUNICODE_STRING RemovableRootPath, _In_ PCUNICODE_STRING SourceRootPath, _In_ PCUNICODE_STRING DestinationArcPath)
NTSTATUS NTAPI InstallBootManagerAndBootEntries(_In_ ARCHITECTURE_TYPE ArchType, _In_ PCUNICODE_STRING SystemRootPath, _In_ PCUNICODE_STRING SourceRootPath, _In_ PCUNICODE_STRING DestinationArcPath, _In_ ULONG_PTR Options)
Installs FreeLoader on the system and configure the boot entries.
_In_ PSCSI_REQUEST_BLOCK _Out_ NTSTATUS _Inout_ BOOLEAN * Retry
BOOL WINAPI InitCommonControlsEx(const INITCOMMONCONTROLSEX *lpInitCtrls)
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define STATUS_NOT_SUPPORTED
#define ERROR_INSUFFICIENT_BUFFER
FARPROC(WINAPI * PfnDliHook)(unsigned, PDelayLoadInfo)
static CHAR Title[MAX_PATH]
#define NT_SUCCESS(StatCode)
BOOL WINAPI LookupPrivilegeValueW(LPCWSTR lpSystemName, LPCWSTR lpPrivilegeName, PLUID lpLuid)
BOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
#define RTL_CONSTANT_STRING(s)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW lppsh)
#define GetCurrentProcess()
#define HeapFree(x, y, z)
ATOM WINAPI GlobalDeleteAtom(ATOM nAtom)
ATOM WINAPI GlobalAddAtomW(LPCWSTR lpString)
DWORD WINAPI QueryDosDeviceW(LPCWSTR lpDeviceName, LPWSTR lpTargetPath, DWORD ucchMax)
DWORD WINAPI GetLogicalDriveStringsW(IN DWORD nBufferLength, IN LPWSTR lpBuffer)
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessW(LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
VOID WINAPI ExitProcess(IN UINT uExitCode)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
DWORD WINAPI GetThreadId(IN HANDLE Thread)
BOOL WINAPI GetExitCodeThread(IN HANDLE hThread, OUT LPDWORD lpExitCode)
LCID WINAPI GetUserDefaultLCID(void)
#define IS_INTRESOURCE(x)
BOOL WINAPI CopyContext(CONTEXT *dst, DWORD context_flags, CONTEXT *src)
#define SYMBOLIC_LINK_QUERY
_ACRTIMP int __cdecl _vscwprintf(const wchar_t *, va_list)
_ACRTIMP int __cdecl swscanf(const wchar_t *, const wchar_t *,...)
_ACRTIMP __msvcrt_long __cdecl wcstol(const wchar_t *, wchar_t **, int)
_ACRTIMP int __cdecl _wcsicmp(const wchar_t *, const wchar_t *)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
_ACRTIMP int __cdecl _wcsnicmp(const wchar_t *, const wchar_t *, size_t)
static const WCHAR CmdLine[]
PVOL_CREATE_INFO FindVolCreateInTreeByVolume(_In_ HWND hTreeList, _In_ PVOLENTRY Volume)
INT_PTR CALLBACK DriveDlgProc(_In_ HWND hwndDlg, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam)
_In_ uint64_t _In_ uint64_t _In_ uint64_t _In_opt_ traverse_ptr * tp
static PDISK_IMAGE FloppyDrive[2]
#define InsertHeadList(ListHead, Entry)
#define IsListEmpty(ListHead)
#define RemoveHeadList(ListHead)
#define InitializeListHead(ListHead)
enum _ERROR_NUMBER ERROR_NUMBER
#define EnableDlgItem(hDlg, nID, bEnable)
#define SPFILENOTIFY_ENDDELETE
struct _FILEPATHS_W * PFILEPATHS_W
#define SPFILENOTIFY_STARTDELETE
#define SPFILENOTIFY_STARTSUBQUEUE
#define SPFILENOTIFY_ENDCOPY
#define SPFILENOTIFY_STARTCOPY
#define SPFILENOTIFY_COPYERROR
#define SPFILENOTIFY_STARTRENAME
#define SPFILENOTIFY_ENDRENAME
struct TEXTOUTPUT * PTEXTOUTPUT
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
NTSTATUS NTAPI NtRaiseHardError(IN NTSTATUS ErrorStatus, IN ULONG NumberOfParameters, IN ULONG UnicodeStringParameterMask, IN PULONG_PTR Parameters, IN ULONG ValidResponseOptions, OUT PULONG Response)
SPFILE_EXPORTS SpFileExports
SPINF_EXPORTS SpInfExports
ULONG NTAPI GetNumberOfListEntries(IN PGENERIC_LIST List)
VOID NTAPI SetCurrentListEntry(IN PGENERIC_LIST List, IN PGENERIC_LIST_ENTRY Entry)
PGENERIC_LIST_ENTRY NTAPI GetFirstListEntry(IN PGENERIC_LIST List)
PGENERIC_LIST_ENTRY NTAPI GetNextListEntry(IN PGENERIC_LIST_ENTRY Entry)
PGENERIC_LIST_ENTRY NTAPI GetCurrentListEntry(IN PGENERIC_LIST List)
PVOID NTAPI GetListEntryData(IN PGENERIC_LIST_ENTRY Entry)
#define memmove(s1, s2, n)
#define ERROR_ALREADY_EXISTS
static PROCESS_INFORMATION pi
#define InitializeObjectAttributes(p, n, a, r, s)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
struct _PSP * HPROPSHEETPAGE
unsigned __int3264 UINT_PTR
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
#define HARDERROR_OVERRIDE_ERRORMODE
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
#define RTL_NUMBER_OF_FIELD(type, field)
#define DBG_UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG _In_ ULONG Length
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
#define STATUS_DLL_NOT_FOUND
#define STATUS_PARTITION_FAILURE
NTSTATUS NTAPI NtQuerySymbolicLinkObject(IN HANDLE LinkHandle, OUT PUNICODE_STRING LinkTarget, OUT PULONG ResultLength OPTIONAL)
NTSTATUS NTAPI NtOpenSymbolicLinkObject(OUT PHANDLE LinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
PGENERIC_LIST NTAPI CreateNTOSInstallationsList(_In_ PPARTLIST PartList)
Create a list of available NT OS installations on the computer, by searching for recognized ones on e...
struct _NTOS_INSTALLATION * PNTOS_INSTALLATION
#define PropSheet_PressButton(d, i)
#define CreatePropertySheetPage
#define PSM_SETWIZBUTTONS
#define PropSheet_SetWizButtons(d, f)
#define PSN_QUERYINITIALFOCUS
#define PropSheet_SetCurSelByID(d, i)
struct _PROPSHEETPAGEW * LPPROPSHEETPAGEW
#define ListView_SetItemState(hwndLV, i, data, mask)
#define ListView_SetExtendedListViewStyleEx(hwndLV, dwMask, dw)
#define ICC_TREEVIEW_CLASSES
#define ListView_InsertColumn(hwnd, iCol, pcol)
#define ListView_SetImageList(hwnd, himl, iImageList)
#define ListView_GetImageList(hwnd, iImageList)
#define LVS_EX_FULLROWSELECT
#define ICC_PROGRESS_CLASS
#define ListView_GetSelectionMark(hwnd)
struct tagNMLISTVIEW * LPNMLISTVIEW
#define ImageList_AddIcon(himl, hicon)
#define ListView_GetItem(hwnd, pitem)
#define ListView_EnsureVisible(hwndLV, i, fPartialOK)
#define ICC_LISTVIEW_CLASSES
#define OBJ_CASE_INSENSITIVE
BOOLEAN NTAPI FsVolCommitOpsQueue(_In_ PPARTLIST PartitionList, _In_ PVOLENTRY SystemVolume, _In_ PVOLENTRY InstallVolume, _In_opt_ PFSVOL_CALLBACK FsVolCallback, _In_opt_ PVOID Context)
@ FSVOLNOTIFY_STARTSUBQUEUE
@ FSVOLNOTIFY_STARTFORMAT
@ FSVOLNOTIFY_ENDSUBQUEUE
@ FSVOLNOTIFY_PARTITIONERROR
@ FSVOLNOTIFY_FORMATERROR
struct _FORMAT_VOLUME_INFO * PFORMAT_VOLUME_INFO
enum _FSVOLNOTIFY FSVOLNOTIFY
struct _CHECK_VOLUME_INFO * PCHECK_VOLUME_INFO
PPARTLIST NTAPI CreatePartitionList(VOID)
VOID NTAPI InstallSetupInfFile(IN OUT PUSETUP_DATA pSetupData)
ERROR_NUMBER NTAPI InitializeSetup(_Inout_ PUSETUP_DATA pSetupData, _In_opt_ PSETUP_ERROR_ROUTINE ErrorRoutine, _In_ PSPFILE_EXPORTS pSpFileExports, _In_ PSPINF_EXPORTS pSpInfExports)
NTSTATUS NTAPI InitDestinationPaths(_Inout_ PUSETUP_DATA pSetupData, _In_ PCWSTR InstallationDir, _In_ PVOLENTRY Volume)
BOOLEAN NTAPI InitSystemPartition(_In_ PPARTLIST PartitionList, _In_ PPARTENTRY InstallPartition, _Out_ PPARTENTRY *pSystemPartition, _In_opt_ PFSVOL_CALLBACK FsVolCallback, _In_opt_ PVOID Context)
Find or set the active system partition.
BOOLEAN NTAPI CheckUnattendedSetup(IN OUT PUSETUP_DATA pSetupData)
VOID NTAPI FinishSetup(IN OUT PUSETUP_DATA pSetupData)
ERROR_NUMBER NTAPI UpdateRegistry(IN OUT PUSETUP_DATA pSetupData, IN BOOLEAN RepairUpdateFlag, IN PPARTLIST PartitionList, IN WCHAR DestinationDriveLetter, IN PCWSTR SelectedLanguageId, IN PREGISTRY_STATUS_ROUTINE StatusRoutine OPTIONAL, IN PFONTSUBSTSETTINGS SubstSettings OPTIONAL)
#define ERROR_SYSTEM_PARTITION_NOT_FOUND
enum _REGISTRY_STATUS REGISTRY_STATUS
#define STATUS_DEVICE_NOT_READY
LPTSTR FindSubStrI(LPCTSTR str, LPCTSTR strSearch)
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchVPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat, va_list argList)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyNW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc, size_t cchToCopy)
STRSAFEAPI StringCchPrintfA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszFormat,...)
BOOL Found
TRUE if a closable window was found; FALSE if not.
HWND hWndExclude
Window to exclude from search.
ULONG CompletedOperations
struct _LIST_ENTRY * Flink
WCHAR InstallationName[MAX_PATH]
UNICODE_STRING SystemNtPath
WCHAR VendorName[MAX_PATH]
WCHAR DeviceName[MAX_PATH]
NT device name: "\Device\HarddiskM\PartitionN".
struct _DISKENTRY * DiskEntry
ULONG OnDiskPartitionNumber
PCWSTR SelectedLanguageId
PNTOS_INSTALLATION CurrentInstallation
PGENERIC_LIST NtOsInstallsList
NT_WIN32_PATH_MAPPING_LIST MappingList
PGENERIC_LIST DisplayList
UNICODE_STRING DestinationRootPath
PGENERIC_LIST ComputerList
UNICODE_STRING SystemRootPath
UNICODE_STRING SourceRootPath
WCHAR InstallationDirectory[MAX_PATH]
ARCHITECTURE_TYPE ArchType
PGENERIC_LIST KeyboardList
UNICODE_STRING DestinationArcPath
WCHAR DeviceName[MAX_PATH]
NT device name: "\Device\HarddiskVolumeN".
WCHAR FileSystem[MAX_PATH+1]
Data structure stored when a partition/volume needs to be formatted.
WCHAR FileSystemName[MAX_PATH+1]
FMIFS_MEDIA_FLAG MediaFlag
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateMutexW(IN LPSECURITY_ATTRIBUTES lpMutexAttributes OPTIONAL, IN BOOL bInitialOwner, IN LPCWSTR lpName OPTIONAL)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
int TreeListRegister(HINSTANCE hInstance)
BOOL TreeListUnregister(HINSTANCE hInstance)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define CONTAINING_RECORD(address, type, field)
#define STATUS_UNRECOGNIZED_VOLUME
PFMIFSCALLBACK ChkdskCallback
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PWDFDEVICE_INIT _In_ PFN_WDF_DEVICE_SHUTDOWN_NOTIFICATION Notification
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING _In_ PCUNICODE_STRING _In_ LCID LocaleId
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_Must_inspect_result_ _In_ WDFCMRESLIST List
UINT WINAPI GetDlgItemTextW(HWND hDlg, int nIDDlgItem, LPWSTR lpString, int nMaxCount)
VOID WINAPI SwitchToThisWindow(HWND hwnd, BOOL fAltTab)
DWORD WINAPI GetLastError(void)
#define CREATE_NEW_CONSOLE
#define DeleteFont(hfont)
#define ComboBox_GetItemData(hwndCtl, index)
#define ComboBox_GetCurSel(hwndCtl)
#define ERROR_PATH_NOT_FOUND
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
#define CreateFontIndirect
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI GetKeyboardLayoutNameW(_Out_writes_(KL_NAMELENGTH) LPWSTR)
BOOL WINAPI IsWindow(_In_opt_ HWND)
#define GetWindowLongPtrW
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
HWND WINAPI GetLastActivePopup(_In_ HWND)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
BOOL WINAPI UnregisterHotKey(_In_opt_ HWND, _In_ int)
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
int WINAPI ShowCursor(_In_ BOOL)
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
#define QS_ALLPOSTMESSAGE
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
HMENU WINAPI GetSystemMenu(_In_ HWND, _In_ BOOL)
DWORD WINAPI MsgWaitForMultipleObjects(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ BOOL fWaitAll, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask)
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
HWND WINAPI GetDesktopWindow(void)
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
BOOL WINAPI RegisterHotKey(_In_opt_ HWND, _In_ int, _In_ UINT, _In_ UINT)
HWND WINAPI SetFocus(_In_opt_ HWND)
BOOL WINAPI EnumWindows(_In_ WNDENUMPROC lpEnumFunc, _In_ LPARAM lParam)
BOOL WINAPI PeekMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
BOOL WINAPI PostThreadMessageW(_In_ DWORD, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
struct DLGTEMPLATE * LPDLGTEMPLATE
BOOL WINAPI UpdateWindow(_In_ HWND)
struct tagNMHDR * LPNMHDR
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
BOOL WINAPI IsWindowEnabled(_In_ HWND)
HWND WINAPI GetParent(_In_ HWND)
BOOL WINAPI GetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOW)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
BOOL WINAPI CheckRadioButton(_In_ HWND, _In_ int, _In_ int, _In_ int)
BOOL WINAPI ExitWindowsEx(_In_ UINT, _In_ DWORD)
#define MB_ICONINFORMATION
#define SWP_NOOWNERZORDER
int WINAPI MessageBoxIndirectW(_In_ CONST MSGBOXPARAMSW *lpmbp)
HWND WINAPI FindWindowW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define MAKEINTRESOURCEW(i)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
#define SetWindowLongPtrW
#define SendDlgItemMessage
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
int WINAPI GetSystemMetrics(_In_ int)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
_In_ ULONG _In_ ULONG PartitionNumber
_Inout_opt_ PVOID Parameter
#define TOKEN_ADJUST_PRIVILEGES
#define SE_PRIVILEGE_ENABLED