76 if (*szSystemDrive !=
NULL)
88 *szSystemDrive =
szTmp;
91 if (dwBufSize2 > dwBufSize || dwBufSize2 == 0)
94 else if (dwBufSize == 0)
98 *szSystemDrive =
NULL;
148 sizeof(szValue) /
sizeof(
WCHAR),
207 sizeof(szDefaultOs) /
sizeof(
WCHAR),
233 L"Operating Systems",
256 sizeof(szValue) /
sizeof(
WCHAR),
273 wcscpy(szDefaultOs, szValue);
337 sizeof(szValue) /
sizeof(
WCHAR),
345 TimeOut =
_wtoi(szValue);
350 wcscpy(szDefaultOS, szValue);
357 L"operating systems",
379 sizeof(szValue) /
sizeof(
WCHAR),
388 sizeof(szOptions) /
sizeof(
WCHAR),
402 wcscpy(szDefaultOS, szValue);
464 WCHAR *szSystemDrive;
556 L"System\\CurrentControlSet\\Control\\CrashControl",
606 DWORD dwValue, dwValueLength, dwType, dwResult;
609 L"System\\CurrentControlSet\\Control\\CrashControl",
634 dwValueLength =
sizeof(
DWORD);
638 dwValueLength =
sizeof(
DWORD);
642 dwValueLength =
sizeof(
DWORD);
646 dwValueLength =
sizeof(
DWORD);
650 dwValueLength =
sizeof(
DWORD);
654 dwValueLength =
sizeof(pStartInfo->
szDumpFile);
755 if (pStartInfo->iFreeLdrIni == 1)
761 pStartInfo->szFreeldrIni);
766 pStartInfo->szFreeldrIni);
769 else if (pStartInfo->iFreeLdrIni == 2)
775 pStartInfo->szFreeldrIni);
780 pStartInfo->szFreeldrIni);
819 if (lResult !=
CB_ERR && lResult != (
LRESULT)pStartInfo->dwCrashDumpEnabled)
821 if (pStartInfo->dwCrashDumpEnabled == 1 || pStartInfo->dwCrashDumpEnabled == 2)
825 else if (pStartInfo->dwCrashDumpEnabled == 3)
830 pStartInfo->dwCrashDumpEnabled = (
DWORD)lResult;
#define RegCloseKey(hKey)
#define IDC_STRRECRECUPDWN
#define IDC_STRRECDEBUGCOMBO
#define IDC_STRRECOVERWRITE
#define IDC_STRRECRESTART
#define IDC_STRRECSENDALERT
#define IDC_STRRECLISTUPDWN
#define IDC_STRRECWRITEEVENT
#define IDC_STRRECRECEDIT
#define IDC_STRRECDUMPFILE
#define IDC_STRRECLISTEDIT
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define GetEnvironmentVariableW(x, y, z)
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
BOOL WINAPI WritePrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR string, LPCWSTR filename)
HINF WINAPI SetupOpenInfFileW(PCWSTR name, PCWSTR class, DWORD style, UINT *error)
BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath)
_Check_return_ _CRTIMP int __cdecl _wtoi(_In_z_ const wchar_t *_Str)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define REG_OPTION_NON_VOLATILE
#define UNREFERENCED_PARAMETER(P)
static const WCHAR szName[]
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpVerb, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
struct _BOOTRECORD BOOTRECORD
struct _BOOTRECORD * PBOOTRECORD
static VOID SetRecoveryTimeout(HWND hwndDlg, INT Timeout)
static LRESULT LoadOSList(HWND hwndDlg, PSTARTINFO pStartInfo)
static VOID SetTimeout(HWND hwndDlg, INT Timeout)
static VOID SetCrashDlgItems(HWND hwnd, PSTARTINFO pStartInfo)
struct _STARTINFO * PSTARTINFO
struct _STARTINFO STARTINFO
static DWORD GetSystemDrive(WCHAR **szSystemDrive)
static VOID WriteStartupRecoveryOptions(HWND hwndDlg, PSTARTINFO pStartInfo)
static INT LoadBootSettings(HINF hInf, HWND hwndDlg)
static INT LoadFreeldrSettings(HINF hInf, HWND hwndDlg)
INT_PTR CALLBACK StartRecDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static VOID LoadRecoveryOptions(HWND hwndDlg, PSTARTINFO pStartInfo)
static PBOOTRECORD ReadFreeldrSection(HINF hInf, WCHAR *szSectionName)
static VOID DeleteBootRecords(HWND hwndDlg)
WCHAR szBootPath[MAX_PATH]
WCHAR szMinidumpDir[MAX_PATH]
WCHAR szDumpFile[MAX_PATH]
WCHAR szFreeldrIni[MAX_PATH+15]
BOOL WINAPI SetupGetStringFieldW(IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PWSTR ReturnBuffer, IN ULONG ReturnBufferSize, OUT PULONG RequiredSize)
BOOL WINAPI SetupFindFirstLineW(IN HINF InfHandle, IN PCWSTR Section, IN PCWSTR Key, IN OUT PINFCONTEXT Context)
BOOL WINAPI SetupGetIntField(IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT INT *IntegerValue)
BOOL WINAPI SetupFindNextLine(IN PINFCONTEXT ContextIn, OUT PINFCONTEXT ContextOut)
VOID WINAPI SetupCloseInfFile(IN HINF InfHandle)
#define HKEY_LOCAL_MACHINE
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
#define SendDlgItemMessage
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
void ShowLastWin32Error(HWND hwndParent)