ReactOS 0.4.16-dev-2636-g02c744d
globals.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _ADMIN_INFO
 
struct  _ITEMSDATA
 
struct  _REGISTRATIONNOTIFY
 

Macros

#define PM_REGISTRATION_NOTIFY   (WM_APP + 1)
 
#define PM_ITEM_START   (WM_APP + 2)
 
#define PM_ITEM_END   (WM_APP + 3)
 
#define PM_STEP_START   (WM_APP + 4)
 
#define PM_STEP_END   (WM_APP + 5)
 
#define PM_ITEMS_DONE   (WM_APP + 6)
 

Typedefs

typedef struct _ADMIN_INFO ADMIN_INFO
 
typedef struct _ADMIN_INFOPADMIN_INFO
 
typedef struct _ITEMSDATA ITEMSDATA
 
typedef struct _ITEMSDATAPITEMSDATA
 
typedef struct _REGISTRATIONNOTIFY REGISTRATIONNOTIFY
 
typedef struct _REGISTRATIONNOTIFYPREGISTRATIONNOTIFY
 

Functions

BOOL RegisterTypeLibraries (_In_ PITEMSDATA pItemsData, _In_ PREGISTRATIONNOTIFY pNotify, _In_ HINF hinf, _In_ LPCWSTR szSection)
 
VOID InstallStartMenuItems (_In_ PITEMSDATA pItemsData)
 
BOOL InstallNetworkComponent (_In_ PWSTR pszComponentId)
 
LONG CountSecuritySteps (VOID)
 
DWORD InstallSecurity (_In_ PITEMSDATA pItemsData, _In_ PREGISTRATIONNOTIFY pNotify)
 
NTSTATUS SetAdministratorPassword (LPCWSTR Password)
 
VOID SetAutoAdminLogon (VOID)
 
VOID InstallWizard (VOID)
 

Variables

HINSTANCE hDllInstance
 
HINF hSysSetupInf
 
ADMIN_INFO AdminInfo
 

Macro Definition Documentation

◆ PM_ITEM_END

#define PM_ITEM_END   (WM_APP + 3)

Definition at line 57 of file globals.h.

◆ PM_ITEM_START

#define PM_ITEM_START   (WM_APP + 2)

Definition at line 52 of file globals.h.

◆ PM_ITEMS_DONE

#define PM_ITEMS_DONE   (WM_APP + 6)

Definition at line 64 of file globals.h.

◆ PM_REGISTRATION_NOTIFY

#define PM_REGISTRATION_NOTIFY   (WM_APP + 1)

Definition at line 45 of file globals.h.

◆ PM_STEP_END

#define PM_STEP_END   (WM_APP + 5)

Definition at line 63 of file globals.h.

◆ PM_STEP_START

#define PM_STEP_START   (WM_APP + 4)

Definition at line 62 of file globals.h.

Typedef Documentation

◆ ADMIN_INFO

◆ ITEMSDATA

◆ PADMIN_INFO

◆ PITEMSDATA

◆ PREGISTRATIONNOTIFY

◆ REGISTRATIONNOTIFY

Function Documentation

◆ CountSecuritySteps()

LONG CountSecuritySteps ( VOID  )

Definition at line 1607 of file security.c.

1608{
1609 HINF hSecurityInf;
1610 PWSTR pszSecurityInf;
1611 LONG Steps = 0;
1612
1613// if (IsServer())
1614// pszSecurityInf = L"defltsv.inf";
1615// else
1616 pszSecurityInf = L"defltwk.inf";
1617
1618 Steps += 10; // InstallBuiltinAccounts();
1619
1620 hSecurityInf = SetupOpenInfFileW(pszSecurityInf,
1621 NULL,
1623 NULL);
1624 if (hSecurityInf != INVALID_HANDLE_VALUE)
1625 {
1626 /* Count InstallPrivilege steps */
1627 Steps += SetupGetLineCountW(hSecurityInf, L"Privilege Rights");
1628
1629 Steps += SetupGetLineCountW(hSecurityInf, L"Registry Values");
1630
1631 Steps += SetupGetLineCountW(hSecurityInf, L"Application Log");
1632 Steps += SetupGetLineCountW(hSecurityInf, L"Security Log");
1633 Steps += SetupGetLineCountW(hSecurityInf, L"System Log");
1634
1635 Steps += SetupGetLineCountW(hSecurityInf, L"System Access");
1636
1637 Steps += SetupGetLineCountW(hSecurityInf, L"Event Audit");
1638
1639 SetupCloseInfFile(hSecurityInf);
1640 }
1641
1642 Steps++; // SetPrimaryDomain
1643
1644 return Steps;
1645}
#define NULL
Definition: types.h:112
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
HINF WINAPI SetupOpenInfFileW(PCWSTR name, PCWSTR class, DWORD style, UINT *error)
Definition: parser.c:1229
LONG WINAPI SetupGetLineCountW(HINF hinf, PCWSTR section)
Definition: parser.c:1501
#define L(x)
Definition: resources.c:13
#define INF_STYLE_WIN4
Definition: infsupp.h:43
long LONG
Definition: pedump.c:60
uint16_t * PWSTR
Definition: typedefs.h:56
VOID WINAPI SetupCloseInfFile(IN HINF InfHandle)
Definition: infsupp.c:45

Referenced by SaveSettings().

◆ InstallNetworkComponent()

BOOL InstallNetworkComponent ( _In_ PWSTR  pszComponentId)

Definition at line 467 of file netinstall.c.

469{
471 HKEY hInstanceKey = NULL;
472 BOOL bResult = FALSE;
473
474 DPRINT("InstallNetworkComponent(%S)\n", pszComponentId);
475
477
478 if (!ScanForInfFile(pszComponentId, &ComponentInfo))
479 goto done;
480
481 DPRINT("Characteristics: 0x%lx\n", ComponentInfo.dwCharacteristics);
482 DPRINT("ComponentId: %S\n", ComponentInfo.pszComponentId);
483 DPRINT("Description: %S\n", ComponentInfo.pszDescription);
484 DPRINT("InfPath: %S\n", ComponentInfo.pszInfPath);
485 DPRINT("InfSection: %S\n", ComponentInfo.pszInfSection);
486 DPRINT("ClassGuid: %S\n", ComponentInfo.pszClassGuid);
487
489 &hInstanceKey))
490 {
491 DPRINT1("CreateInstanceKey() failed (Error %lx)\n", GetLastError());
492 goto done;
493 }
494
496 hInstanceKey,
497 ComponentInfo.pszInfPath,
498 ComponentInfo.pszInfSection))
499 {
500 DPRINT1("InstallInfSections() failed (Error %lx)\n", GetLastError());
501 goto done;
502 }
503
504 bResult = TRUE;
505
506done:
507 if (hInstanceKey != NULL)
508 RegCloseKey(hInstanceKey);
509
510 if (ComponentInfo.pszInfPath)
511 HeapFree(GetProcessHeap(), 0, ComponentInfo.pszInfPath);
512
513 if (ComponentInfo.pszInfSection)
514 HeapFree(GetProcessHeap(), 0, ComponentInfo.pszInfSection);
515
516 if (ComponentInfo.pszComponentId)
517 HeapFree(GetProcessHeap(), 0, ComponentInfo.pszComponentId);
518
519 if (ComponentInfo.pszDescription)
520 HeapFree(GetProcessHeap(), 0, ComponentInfo.pszDescription);
521
522 if (ComponentInfo.pszClassGuid)
523 HeapFree(GetProcessHeap(), 0, ComponentInfo.pszClassGuid);
524
525 return bResult;
526}
#define DPRINT1
Definition: precomp.h:8
#define RegCloseKey(hKey)
Definition: registry.h:49
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define GetProcessHeap()
Definition: compat.h:736
#define HeapFree(x, y, z)
Definition: compat.h:735
unsigned int BOOL
Definition: ntddk_ex.h:94
#define ZeroMemory
Definition: minwinbase.h:31
#define DPRINT
Definition: sndvol32.h:73
static BOOL InstallInfSections(_In_ HWND hWnd, _In_ HKEY hKey, _In_ LPCWSTR InfFile, _In_ LPCWSTR InfSection)
Definition: netinstall.c:36
static BOOL CreateInstanceKey(_In_ PCOMPONENT_INFO pComponentInfo, _Out_ PHKEY pInstanceKey)
Definition: netinstall.c:114
static BOOL ScanForInfFile(_In_ PWSTR pszComponentId, _In_ PCOMPONENT_INFO pComponentInfo)
Definition: netinstall.c:401
DWORD WINAPI GetLastError(void)
Definition: except.c:1042

◆ InstallSecurity()

DWORD InstallSecurity ( _In_ PITEMSDATA  pItemsData,
_In_ PREGISTRATIONNOTIFY  pNotify 
)

Definition at line 1648 of file security.c.

1651{
1652 HINF hSecurityInf;
1653 PWSTR pszSecurityInf;
1654
1655// if (IsServer())
1656// pszSecurityInf = L"defltsv.inf";
1657// else
1658 pszSecurityInf = L"defltwk.inf";
1659
1660 InstallBuiltinAccounts(pItemsData, pNotify);
1661
1662 hSecurityInf = SetupOpenInfFileW(pszSecurityInf,
1663 NULL,
1665 NULL);
1666 if (hSecurityInf != INVALID_HANDLE_VALUE)
1667 {
1668 InstallPrivileges(hSecurityInf, pItemsData, pNotify);
1669 ApplyRegistryValues(hSecurityInf, pItemsData, pNotify);
1670
1671 ApplyEventlogSettings(hSecurityInf, pItemsData, pNotify, L"Application Log", L"Application");
1672 ApplyEventlogSettings(hSecurityInf, pItemsData, pNotify, L"Security Log", L"Security");
1673 ApplyEventlogSettings(hSecurityInf, pItemsData, pNotify, L"System Log", L"System");
1674
1675 ApplyPasswordSettings(hSecurityInf, pItemsData, pNotify, L"System Access");
1676 ApplyLockoutSettings(hSecurityInf, L"System Access");
1677 ApplyAccountSettings(hSecurityInf, L"System Access");
1678
1679 ApplyAuditEvents(hSecurityInf);
1680
1681 SetupCloseInfFile(hSecurityInf);
1682 }
1683
1684 /* Hack */
1685 SetPrimaryDomain(L"WORKGROUP", NULL);
1686
1687 return ERROR_SUCCESS;
1688}
#define ERROR_SUCCESS
Definition: deptool.c:10
static VOID ApplyAuditEvents(_In_ HINF hSecurityInf)
Definition: security.c:1469
static VOID ApplyLockoutSettings(_In_ HINF hSecurityInf, _In_ PWSTR pszSectionName)
Definition: security.c:1030
static NTSTATUS SetPrimaryDomain(LPCWSTR DomainName, PSID DomainSid)
Definition: security.c:153
static VOID ApplyRegistryValues(_In_ HINF hSecurityInf, _In_ PITEMSDATA pItemsData, _In_ PREGISTRATIONNOTIFY pNotify)
Definition: security.c:454
static VOID InstallPrivileges(_In_ HINF hSecurityInf, _In_ PITEMSDATA pItemsData, _In_ PREGISTRATIONNOTIFY pNotify)
Definition: security.c:304
static VOID ApplyAccountSettings(_In_ HINF hSecurityInf, _In_ PWSTR pszSectionName)
Definition: security.c:1370
static VOID ApplyPasswordSettings(_In_ HINF hSecurityInf, _In_ PITEMSDATA pItemsData, _In_ PREGISTRATIONNOTIFY pNotify, _In_ PWSTR pszSectionName)
Definition: security.c:821
static VOID InstallBuiltinAccounts(_In_ PITEMSDATA pItemsData, _In_ PREGISTRATIONNOTIFY pNotify)
Definition: security.c:237
static VOID ApplyEventlogSettings(_In_ HINF hSecurityInf, _In_ PITEMSDATA pItemsData, _In_ PREGISTRATIONNOTIFY pNotify, _In_ PWSTR pszSectionName, _In_ PWSTR pszLogName)
Definition: security.c:660

Referenced by SaveSettings().

◆ InstallStartMenuItems()

VOID InstallStartMenuItems ( _In_ PITEMSDATA  pItemsData)

Definition at line 313 of file install.c.

315{
316 HINF hShortcutsInf1 = INVALID_HANDLE_VALUE;
317 HINF hShortcutsInf2 = INVALID_HANDLE_VALUE;
318 LONG Steps = 0;
319 DWORD LastError = 0;
321
322 ZeroMemory(&Notify, sizeof(Notify));
323
324 hShortcutsInf1 = SetupOpenInfFileW(L"shortcuts.inf",
325 NULL,
327 NULL);
328 if (hShortcutsInf1 == INVALID_HANDLE_VALUE)
329 {
330 DPRINT1("Failed to open shortcuts.inf");
331 return;
332 }
333
334 hShortcutsInf2 = SetupOpenInfFileW(L"rosapps_shortcuts.inf",
335 NULL,
337 NULL);
338
339 Steps = CountShortcuts(hShortcutsInf1, L"ShortcutFolders");
340 if (hShortcutsInf2 != INVALID_HANDLE_VALUE)
341 Steps += CountShortcuts(hShortcutsInf2, L"ShortcutFolders");
342
343 SendMessage(pItemsData->hwndDlg, PM_ITEM_START, 1, (LPARAM)Steps);
344
345 if (!CreateShortcuts(pItemsData, &Notify, hShortcutsInf1, L"ShortcutFolders"))
346 {
347 DPRINT1("CreateShortcuts() failed");
348 goto done;
349 }
350
351 if (hShortcutsInf2 != INVALID_HANDLE_VALUE)
352 {
353 if (!CreateShortcuts(pItemsData, &Notify, hShortcutsInf2, L"ShortcutFolders"))
354 {
355 DPRINT1("CreateShortcuts(rosapps) failed");
356 goto done;
357 }
358 }
359
360done:
361 if (hShortcutsInf2 != INVALID_HANDLE_VALUE)
362 SetupCloseInfFile(hShortcutsInf2);
363
364 if (hShortcutsInf1 != INVALID_HANDLE_VALUE)
365 SetupCloseInfFile(hShortcutsInf1);
366
367 SendMessage(pItemsData->hwndDlg, PM_ITEM_END, 1, LastError);
368}
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
#define PM_ITEM_START
Definition: globals.h:52
#define PM_ITEM_END
Definition: globals.h:57
static BOOL CreateShortcuts(_In_ PITEMSDATA pItemsData, _In_ PREGISTRATIONNOTIFY pNotify, _In_ HINF hinf, _In_ LPCWSTR szSection)
Definition: install.c:243
static LONG CountShortcuts(_In_ HINF hinf, _In_ LPCWSTR szSection)
Definition: install.c:287
unsigned long DWORD
Definition: ntddk_ex.h:95
LONG_PTR LPARAM
Definition: minwindef.h:175
#define SendMessage
Definition: winuser.h:6009

Referenced by ItemCompletionThread().

◆ InstallWizard()

VOID InstallWizard ( VOID  )

Definition at line 3363 of file wizard.c.

3364{
3365 PROPSHEETHEADER psh = {0};
3366 HPROPSHEETPAGE *phpage = NULL;
3367 PROPSHEETPAGE psp = {0};
3368 UINT nPages = 0;
3369 HWND hWnd;
3370 MSG msg;
3371 PSETUPDATA pSetupData = NULL;
3372 HMODULE hNetShell = NULL;
3374 DWORD dwPageCount = 10, dwNetworkPageCount = 0;
3375
3376 LogItem(L"BEGIN_SECTION", L"InstallWizard");
3377
3378 /* Allocate setup data */
3379 pSetupData = HeapAlloc(GetProcessHeap(),
3381 sizeof(SETUPDATA));
3382 if (pSetupData == NULL)
3383 {
3384 LogItem(NULL, L"SetupData allocation failed!");
3386 L"Setup failed to allocate global data!",
3387 L"ReactOS Setup",
3389 goto done;
3390 }
3392
3393 hNetShell = LoadLibraryW(L"netshell.dll");
3394 if (hNetShell != NULL)
3395 {
3396 DPRINT("Netshell.dll loaded!\n");
3397
3398 pfn = (PFNREQUESTWIZARDPAGES)GetProcAddress(hNetShell,
3399 "NetSetupRequestWizardPages");
3400 if (pfn != NULL)
3401 {
3402 pfn(&dwNetworkPageCount, NULL, NULL);
3403 dwPageCount += dwNetworkPageCount;
3404 }
3405 }
3406
3407 DPRINT("PageCount: %lu\n", dwPageCount);
3408
3409 phpage = HeapAlloc(GetProcessHeap(),
3411 dwPageCount * sizeof(HPROPSHEETPAGE));
3412 if (phpage == NULL)
3413 {
3414 LogItem(NULL, L"Page array allocation failed!");
3416 L"Setup failed to allocate page array!",
3417 L"ReactOS Setup",
3419 goto done;
3420 }
3421
3422 /* Process the $winnt$.inf setup file */
3423 ProcessSetupInf(pSetupData);
3424
3425 /* Create the Welcome page */
3426 psp.dwSize = sizeof(PROPSHEETPAGE);
3427 psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER;
3428 psp.hInstance = hDllInstance;
3429 psp.lParam = (LPARAM)pSetupData;
3430 psp.pfnDlgProc = WelcomeDlgProc;
3431 psp.pszTemplate = MAKEINTRESOURCE(IDD_WELCOMEPAGE);
3432 phpage[nPages++] = CreatePropertySheetPage(&psp);
3433
3434 /* Create the Acknowledgements page */
3435 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3436 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_ACKTITLE);
3437 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_ACKSUBTITLE);
3438 psp.pszTemplate = MAKEINTRESOURCE(IDD_ACKPAGE);
3439 psp.pfnDlgProc = AckPageDlgProc;
3440 phpage[nPages++] = CreatePropertySheetPage(&psp);
3441
3442 /* Create the Product page */
3443 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3444 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_PRODUCTTITLE);
3445 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_PRODUCTSUBTITLE);
3446 psp.pszTemplate = MAKEINTRESOURCE(IDD_PRODUCT);
3447 psp.pfnDlgProc = ProductPageDlgProc;
3448 phpage[nPages++] = CreatePropertySheetPage(&psp);
3449
3450 /* Create the Locale page */
3451 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3452 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_LOCALETITLE);
3453 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_LOCALESUBTITLE);
3454 psp.pfnDlgProc = LocalePageDlgProc;
3455 psp.pszTemplate = MAKEINTRESOURCE(IDD_LOCALEPAGE);
3456 phpage[nPages++] = CreatePropertySheetPage(&psp);
3457
3458 /* Create the Owner page */
3459 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3460 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_OWNERTITLE);
3461 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_OWNERSUBTITLE);
3462 psp.pszTemplate = MAKEINTRESOURCE(IDD_OWNERPAGE);
3463 psp.pfnDlgProc = OwnerPageDlgProc;
3464 phpage[nPages++] = CreatePropertySheetPage(&psp);
3465
3466 /* Create the Computer page */
3467 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3468 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_COMPUTERTITLE);
3469 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_COMPUTERSUBTITLE);
3470 psp.pfnDlgProc = ComputerPageDlgProc;
3471 psp.pszTemplate = MAKEINTRESOURCE(IDD_COMPUTERPAGE);
3472 phpage[nPages++] = CreatePropertySheetPage(&psp);
3473
3474 /* Create the DateTime page */
3475 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3476 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_DATETIMETITLE);
3477 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_DATETIMESUBTITLE);
3478 psp.pfnDlgProc = DateTimePageDlgProc;
3479 psp.pszTemplate = MAKEINTRESOURCE(IDD_DATETIMEPAGE);
3480 phpage[nPages++] = CreatePropertySheetPage(&psp);
3481
3482 /* Create the theme selection page */
3483 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3484 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_THEMESELECTIONTITLE);
3485 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_THEMESELECTIONSUBTITLE);
3486 psp.pfnDlgProc = ThemePageDlgProc;
3487 psp.pszTemplate = MAKEINTRESOURCE(IDD_THEMEPAGE);
3488 phpage[nPages++] = CreatePropertySheetPage(&psp);
3489
3492
3493 if (pfn)
3494 {
3495 pfn(&dwNetworkPageCount, &phpage[nPages], pSetupData);
3496 nPages += dwNetworkPageCount;
3497 }
3498
3499 /* Create the Process page */
3500 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3501 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_PROCESSTITLE);
3502 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_PROCESSSUBTITLE);
3503 psp.pfnDlgProc = ProcessPageDlgProc;
3504 psp.pszTemplate = MAKEINTRESOURCE(IDD_PROCESSPAGE);
3505 phpage[nPages++] = CreatePropertySheetPage(&psp);
3506
3507 /* Create the Finish page */
3508 psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER;
3509 psp.pfnDlgProc = FinishDlgProc;
3510 psp.pszTemplate = MAKEINTRESOURCE(IDD_FINISHPAGE);
3511 phpage[nPages++] = CreatePropertySheetPage(&psp);
3512
3513 ASSERT(nPages == dwPageCount);
3514
3515 /* Create the property sheet */
3516 psh.dwSize = sizeof(PROPSHEETHEADER);
3517 psh.dwFlags = PSH_WIZARD97 | PSH_WATERMARK | PSH_HEADER | PSH_MODELESS;
3518 psh.hInstance = hDllInstance;
3519 psh.hwndParent = NULL;
3520 psh.nPages = nPages;
3521 psh.nStartPage = 0;
3522 psh.phpage = phpage;
3523 psh.pszbmWatermark = MAKEINTRESOURCE(IDB_WATERMARK);
3524 psh.pszbmHeader = MAKEINTRESOURCE(IDB_HEADER);
3525
3526 /* Create title font */
3527 pSetupData->hTitleFont = CreateTitleFont();
3528 pSetupData->hBoldFont = CreateBoldFont();
3529
3530 /* Display the wizard */
3531 hWnd = (HWND)PropertySheet(&psh);
3533
3534 while (GetMessage(&msg, NULL, 0, 0))
3535 {
3536 if (!IsDialogMessage(hWnd, &msg))
3537 {
3540 }
3541 }
3542
3543 DeleteObject(pSetupData->hBoldFont);
3544 DeleteObject(pSetupData->hTitleFont);
3545
3546 if (pSetupData->hSetupInf != INVALID_HANDLE_VALUE)
3547 SetupCloseInfFile(pSetupData->hSetupInf);
3548
3549done:
3550 if (phpage != NULL)
3551 HeapFree(GetProcessHeap(), 0, phpage);
3552
3553 if (hNetShell != NULL)
3554 FreeLibrary(hNetShell);
3555
3556 if (pSetupData != NULL)
3557 HeapFree(GetProcessHeap(), 0, pSetupData);
3558
3559 LogItem(L"END_SECTION", L"InstallWizard");
3560}
#define msg(x)
Definition: auth_time.c:54
HWND hWnd
Definition: settings.c:17
#define IDB_HEADER
Definition: resource.h:30
#define IDS_PROCESSSUBTITLE
Definition: resource.h:98
#define IDS_PROCESSTITLE
Definition: resource.h:97
#define IDB_WATERMARK
Definition: resource.h:4
#define IDD_PROCESSPAGE
Definition: resource.h:60
#define IDD_LOCALEPAGE
Definition: resource.h:13
static HINSTANCE hDllInstance
Definition: clb.c:9
#define IDD_FINISHPAGE
Definition: resource.h:34
#define IDD_DATETIMEPAGE
Definition: resource.h:5
#define GetProcAddress(x, y)
Definition: compat.h:753
#define HeapAlloc
Definition: compat.h:733
#define FreeLibrary(x)
Definition: compat.h:748
HANDLE HWND
Definition: compat.h:19
#define LoadLibraryW(x)
Definition: compat.h:747
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
#define IDD_WELCOMEPAGE
Definition: resource.h:21
#define IDS_THEMESELECTIONTITLE
Definition: resource.h:134
#define IDS_LOCALESUBTITLE
Definition: resource.h:124
#define IDD_PRODUCT
Definition: resource.h:109
#define IDD_ACKPAGE
Definition: resource.h:44
#define IDS_ACKTITLE
Definition: resource.h:114
#define IDS_PRODUCTTITLE
Definition: resource.h:173
#define IDD_OWNERPAGE
Definition: resource.h:48
#define IDS_OWNERSUBTITLE
Definition: resource.h:118
#define IDS_COMPUTERSUBTITLE
Definition: resource.h:121
#define IDS_DATETIMESUBTITLE
Definition: resource.h:129
#define IDS_LOCALETITLE
Definition: resource.h:123
#define IDS_THEMESELECTIONSUBTITLE
Definition: resource.h:135
#define IDS_COMPUTERTITLE
Definition: resource.h:120
#define IDD_THEMEPAGE
Definition: resource.h:89
#define IDD_COMPUTERPAGE
Definition: resource.h:52
#define IDS_OWNERTITLE
Definition: resource.h:117
#define IDS_ACKSUBTITLE
Definition: resource.h:115
#define IDS_PRODUCTSUBTITLE
Definition: resource.h:174
#define IDS_DATETIMETITLE
Definition: resource.h:128
pKey DeleteObject()
#define ASSERT(a)
Definition: mode.c:44
struct _PSP * HPROPSHEETPAGE
Definition: mstask.idl:90
unsigned int UINT
Definition: ndis.h:50
#define MAKEINTRESOURCE(i)
Definition: ntverrsrc.c:25
#define PROPSHEETHEADER
Definition: prsht.h:392
#define PSH_MODELESS
Definition: prsht.h:50
#define CreatePropertySheetPage
Definition: prsht.h:399
#define PSP_DEFAULT
Definition: prsht.h:22
#define PropertySheet
Definition: prsht.h:400
#define PROPSHEETPAGE
Definition: prsht.h:389
HFONT hBoldFont
Definition: reactos.h:140
PRODUCT_OPTION ProductOption
Definition: syssetup.h:61
UINT uPostNetworkWizardPage
Definition: syssetup.h:59
HFONT hTitleFont
Definition: reactos.h:139
UINT uFirstNetworkWizardPage
Definition: syssetup.h:58
HINF hSetupInf
Definition: syssetup.h:56
static INT_PTR CALLBACK WelcomeDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:191
static HFONT CreateTitleFont(VOID)
Definition: wizard.c:80
static INT_PTR CALLBACK FinishDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:2680
static INT_PTR CALLBACK ComputerPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:1044
static INT_PTR CALLBACK LocalePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:1475
static INT_PTR CALLBACK OwnerPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:794
static INT_PTR CALLBACK DateTimePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:1891
static HFONT CreateBoldFont(VOID)
Definition: wizard.c:101
VOID ProcessSetupInf(IN OUT PSETUPDATA pSetupData)
Definition: wizard.c:3228
DWORD(WINAPI * PFNREQUESTWIZARDPAGES)(PDWORD, HPROPSHEETPAGE *, PSETUPDATA)
Definition: wizard.c:3360
static INT_PTR CALLBACK ThemePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:2037
static INT_PTR CALLBACK AckPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:275
static INT_PTR CALLBACK ProcessPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:2539
static INT_PTR CALLBACK ProductPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:658
#define LogItem(lpTag, lpMessageText...)
Definition: syssetup.h:98
@ PRODUCT_OPTION_DEFAULT
Definition: syssetup.h:30
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define IsDialogMessage
Definition: winuser.h:5975
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
#define MB_ICONERROR
Definition: winuser.h:798
#define GetMessage
Definition: winuser.h:5956
#define MB_OK
Definition: winuser.h:801
#define SW_SHOW
Definition: winuser.h:786
#define DispatchMessage
Definition: winuser.h:5931

Referenced by InstallReactOS().

◆ RegisterTypeLibraries()

BOOL RegisterTypeLibraries ( _In_ PITEMSDATA  pItemsData,
_In_ PREGISTRATIONNOTIFY  pNotify,
_In_ HINF  hinf,
_In_ LPCWSTR  szSection 
)

Definition at line 539 of file install.c.

544{
545 INFCONTEXT InfContext;
546 BOOL res;
549 INT csidl;
550 LPWSTR p;
552 HRESULT hret;
553
554 /* Begin iterating the entries in the inf section */
555 res = SetupFindFirstLine(hinf, szSection, NULL, &InfContext);
556 if (!res) return FALSE;
557
558 do
559 {
560 /* Get the name of the current type library */
561 if (!SetupGetStringFieldW(&InfContext, 1, szName, ARRAYSIZE(szName), NULL))
562 {
563 FatalError("SetupGetStringFieldW failed\n");
564 continue;
565 }
566
567 if (!SetupGetIntField(&InfContext, 2, &csidl))
568 csidl = CSIDL_SYSTEM;
569
570 hret = SHGetFolderPathW(NULL, csidl, NULL, 0, szPath);
571 if (FAILED(hret))
572 {
573 FatalError("SHGetFolderPathW failed hret=0x%lx\n", hret);
574 continue;
575 }
576
578 wcscpy(p, szName);
579
580 if (pItemsData && pNotify)
581 {
582 pNotify->Progress++;
583 pNotify->CurrentItem = szName;
584
585 DPRINT("RegisterTypeLibraries: Start step %ld\n", pNotify->Progress);
586 SendMessage(pItemsData->hwndDlg, PM_STEP_START, 0, (LPARAM)pNotify);
587 }
588
590 if (hmod == NULL)
591 {
592 FatalError("LoadLibraryW failed\n");
593 continue;
594 }
595
597
598 if (pItemsData && pNotify)
599 {
600 DPRINT("RegisterTypeLibraries: End step %ld\n", pNotify->Progress);
601 SendMessage(pItemsData->hwndDlg, PM_STEP_END, 0, (LPARAM)pNotify);
602 }
603
604 } while (SetupFindNextLine(&InfContext, &InfContext));
605
606 return TRUE;
607}
HRESULT __wine_register_resources(HMODULE module)
Definition: register.c:112
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
#define MAX_PATH
Definition: compat.h:34
HRESULT WINAPI SHGetFolderPathW(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath)
Definition: shellpath.c:2716
#define PM_STEP_START
Definition: globals.h:62
#define PM_STEP_END
Definition: globals.h:63
static VOID FatalError(char *pszFmt,...)
Definition: install.c:53
GLuint res
Definition: glext.h:9613
GLfloat GLfloat p
Definition: glext.h:8902
#define FAILED(hr)
Definition: intsafe.h:51
LPCWSTR szPath
Definition: env.c:37
static NTSTATUS *static PWSTR CURDIR *static HMODULE hmod
Definition: security.c:134
#define PathAddBackslash
Definition: pathcch.h:300
short WCHAR
Definition: pedump.c:58
static const WCHAR szName[]
Definition: powrprof.c:45
wcscpy
#define SetupFindFirstLine
Definition: setupapi.h:2625
#define CSIDL_SYSTEM
Definition: shlobj.h:2217
uint16_t * LPWSTR
Definition: typedefs.h:56
int32_t INT
Definition: typedefs.h:58
BOOL WINAPI SetupGetStringFieldW(IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PWSTR ReturnBuffer, IN ULONG ReturnBufferSize, OUT PULONG RequiredSize)
Definition: infsupp.c:186
BOOL WINAPI SetupGetIntField(IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT INT *IntegerValue)
Definition: infsupp.c:148
BOOL WINAPI SetupFindNextLine(IN PINFCONTEXT ContextIn, OUT PINFCONTEXT ContextOut)
Definition: infsupp.c:82

Referenced by InstallLiveCD(), and RegisterComponents().

◆ SetAdministratorPassword()

NTSTATUS SetAdministratorPassword ( LPCWSTR  Password)

Definition at line 1692 of file security.c.

1693{
1695 PUSER_ACCOUNT_NAME_INFORMATION AccountNameInfo = NULL;
1696 USER_SET_PASSWORD_INFORMATION PasswordInfo;
1698 LSA_HANDLE PolicyHandle = NULL;
1699 SAM_HANDLE ServerHandle = NULL;
1700 SAM_HANDLE DomainHandle = NULL;
1701 SAM_HANDLE UserHandle = NULL;
1703
1704 DPRINT("SYSSETUP: SetAdministratorPassword(%p)\n", Password);
1705
1708
1712 &PolicyHandle);
1713 if (Status != STATUS_SUCCESS)
1714 {
1715 DPRINT1("LsaOpenPolicy() failed (Status: 0x%08lx)\n", Status);
1716 return Status;
1717 }
1718
1719 Status = LsaQueryInformationPolicy(PolicyHandle,
1721 (PVOID *)&OrigInfo);
1722 if (!NT_SUCCESS(Status))
1723 {
1724 DPRINT1("LsaQueryInformationPolicy() failed (Status: 0x%08lx)\n", Status);
1725 goto done;
1726 }
1727
1729 &ServerHandle,
1731 NULL);
1732 if (!NT_SUCCESS(Status))
1733 {
1734 DPRINT1("SamConnect() failed (Status: 0x%08lx)\n", Status);
1735 goto done;
1736 }
1737
1738 Status = SamOpenDomain(ServerHandle,
1740 OrigInfo->DomainSid,
1741 &DomainHandle);
1742 if (!NT_SUCCESS(Status))
1743 {
1744 DPRINT1("SamOpenDomain() failed (Status: 0x%08lx)\n", Status);
1745 goto done;
1746 }
1747
1748 Status = SamOpenUser(DomainHandle,
1751 &UserHandle);
1752 if (!NT_SUCCESS(Status))
1753 {
1754 DPRINT1("SamOpenUser() failed (Status %08lx)\n", Status);
1755 goto done;
1756 }
1757
1758 RtlInitUnicodeString(&PasswordInfo.Password, Password);
1759 PasswordInfo.PasswordExpired = FALSE;
1760
1761 Status = SamSetInformationUser(UserHandle,
1763 &PasswordInfo);
1764 if (!NT_SUCCESS(Status))
1765 {
1766 DPRINT1("SamSetInformationUser() failed (Status %08lx)\n", Status);
1767 goto done;
1768 }
1769
1770 Status = SamQueryInformationUser(UserHandle,
1772 (PVOID*)&AccountNameInfo);
1773 if (!NT_SUCCESS(Status))
1774 {
1775 DPRINT1("SamQueryInformationUser() failed (Status 0x%08lx)\n", Status);
1776 goto done;
1777 }
1778
1779 AdminInfo.Name = RtlAllocateHeap(RtlGetProcessHeap(),
1781 AccountNameInfo->UserName.Length + sizeof(WCHAR));
1782 if (AdminInfo.Name != NULL)
1784 AccountNameInfo->UserName.Buffer,
1785 AccountNameInfo->UserName.Length);
1786
1787 AdminInfo.Domain = RtlAllocateHeap(RtlGetProcessHeap(),
1789 OrigInfo->DomainName.Length + sizeof(WCHAR));
1790 if (AdminInfo.Domain != NULL)
1792 OrigInfo->DomainName.Buffer,
1793 OrigInfo->DomainName.Length);
1794
1795 AdminInfo.Password = RtlAllocateHeap(RtlGetProcessHeap(),
1796 0,
1797 (wcslen(Password) + 1) * sizeof(WCHAR));
1798 if (AdminInfo.Password != NULL)
1800
1801 DPRINT("Administrator Name: %S\n", AdminInfo.Name);
1802 DPRINT("Administrator Domain: %S\n", AdminInfo.Domain);
1803 DPRINT("Administrator Password: %S\n", AdminInfo.Password);
1804
1805done:
1806 if (AccountNameInfo != NULL)
1807 SamFreeMemory(AccountNameInfo);
1808
1809 if (OrigInfo != NULL)
1810 LsaFreeMemory(OrigInfo);
1811
1812 if (PolicyHandle != NULL)
1813 LsaClose(PolicyHandle);
1814
1815 if (UserHandle != NULL)
1816 SamCloseHandle(UserHandle);
1817
1818 if (DomainHandle != NULL)
1819 SamCloseHandle(DomainHandle);
1820
1821 if (ServerHandle != NULL)
1822 SamCloseHandle(ServerHandle);
1823
1824 DPRINT1("SYSSETUP: SetAdministratorPassword() done (Status %08lx)\n", Status);
1825
1826 return Status;
1827}
LONG NTSTATUS
Definition: precomp.h:26
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:616
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
NTSTATUS WINAPI LsaOpenPolicy(IN PLSA_UNICODE_STRING SystemName OPTIONAL, IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes, IN ACCESS_MASK DesiredAccess, OUT PLSA_HANDLE PolicyHandle)
Definition: lsa.c:1183
NTSTATUS WINAPI LsaQueryInformationPolicy(IN LSA_HANDLE PolicyHandle, IN POLICY_INFORMATION_CLASS InformationClass, OUT PVOID *Buffer)
Definition: lsa.c:1473
NTSTATUS WINAPI LsaFreeMemory(IN PVOID Buffer)
Definition: lsa.c:701
NTSTATUS WINAPI LsaClose(IN LSA_HANDLE ObjectHandle)
Definition: lsa.c:194
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
Definition: wcs.c:2983
ADMIN_INFO AdminInfo
Definition: install.c:38
Status
Definition: gdiplustypes.h:25
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define USER_READ_GENERAL
Definition: ntsam.h:126
#define USER_FORCE_PASSWORD_CHANGE
Definition: ntsam.h:133
#define DOMAIN_LOOKUP
Definition: ntsam.h:42
#define SAM_SERVER_LOOKUP_DOMAIN
Definition: ntsam.h:104
@ UserAccountNameInformation
Definition: ntsam.h:520
@ UserSetPasswordInformation
Definition: ntsam.h:528
#define SAM_SERVER_CONNECT
Definition: ntsam.h:99
@ PolicyAccountDomainInformation
Definition: ntsecapi.h:247
struct _LSA_OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES
#define POLICY_TRUST_ADMIN
Definition: ntsecapi.h:64
#define POLICY_VIEW_LOCAL_INFORMATION
Definition: ntsecapi.h:61
NTSTATUS NTAPI SamQueryInformationUser(IN SAM_HANDLE UserHandle, IN USER_INFORMATION_CLASS UserInformationClass, OUT PVOID *Buffer)
Definition: samlib.c:1731
NTSTATUS NTAPI SamOpenUser(IN SAM_HANDLE DomainHandle, IN ACCESS_MASK DesiredAccess, IN ULONG UserId, OUT PSAM_HANDLE UserHandle)
Definition: samlib.c:1535
NTSTATUS NTAPI SamSetInformationUser(IN SAM_HANDLE UserHandle, IN USER_INFORMATION_CLASS UserInformationClass, IN PVOID Buffer)
Definition: samlib.c:2000
NTSTATUS NTAPI SamFreeMemory(IN PVOID Buffer)
Definition: samlib.c:983
NTSTATUS NTAPI SamConnect(IN OUT PUNICODE_STRING ServerName OPTIONAL, OUT PSAM_HANDLE ServerHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
Definition: samlib.c:519
NTSTATUS NTAPI SamCloseHandle(IN SAM_HANDLE SamHandle)
Definition: samlib.c:497
NTSTATUS NTAPI SamOpenDomain(IN SAM_HANDLE ServerHandle, IN ACCESS_MASK DesiredAccess, IN PSID DomainId, OUT PSAM_HANDLE DomainHandle)
Definition: samlib.c:1477
#define memset(x, y, z)
Definition: compat.h:39
#define STATUS_SUCCESS
Definition: shellext.h:65
LPWSTR Password
Definition: globals.h:25
LPWSTR Name
Definition: globals.h:23
LPWSTR Domain
Definition: globals.h:24
LSA_UNICODE_STRING DomainName
Definition: ntsecapi.h:566
UNICODE_STRING UserName
Definition: ntsam.h:623
UNICODE_STRING Password
Definition: ntsam.h:664
@ Password
Definition: telnetd.h:67
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
#define DOMAIN_USER_RID_ADMIN
Definition: setypes.h:631

Referenced by ComputerPageDlgProc().

◆ SetAutoAdminLogon()

VOID SetAutoAdminLogon ( VOID  )

Definition at line 1831 of file security.c.

1832{
1833 WCHAR szAutoAdminLogon[2];
1834 HKEY hKey = NULL;
1835 DWORD dwType;
1836 DWORD dwSize;
1837 LONG lError;
1838
1840 L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",
1841 0,
1843 &hKey);
1844 if (lError != ERROR_SUCCESS)
1845 return;
1846
1847 dwSize = 2 * sizeof(WCHAR);
1848 lError = RegQueryValueExW(hKey,
1849 L"AutoAdminLogon",
1850 NULL,
1851 &dwType,
1852 (LPBYTE)szAutoAdminLogon,
1853 &dwSize);
1854 if (lError != ERROR_SUCCESS)
1855 goto done;
1856
1857 if (wcscmp(szAutoAdminLogon, L"1") == 0)
1858 {
1860 L"DefaultDomainName",
1861 0,
1862 REG_SZ,
1864 (wcslen(AdminInfo.Domain) + 1) * sizeof(WCHAR));
1865
1867 L"DefaultUserName",
1868 0,
1869 REG_SZ,
1871 (wcslen(AdminInfo.Name) + 1) * sizeof(WCHAR));
1872
1874 L"DefaultPassword",
1875 0,
1876 REG_SZ,
1878 (wcslen(AdminInfo.Password) + 1) * sizeof(WCHAR));
1879 }
1880
1881done:
1882 if (hKey != NULL)
1884}
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4882
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
Definition: wcs.c:1972
FxAutoRegKey hKey
#define REG_SZ
Definition: layer.c:22
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
#define KEY_READ
Definition: nt_native.h:1026
#define KEY_WRITE
Definition: nt_native.h:1034
unsigned char * LPBYTE
Definition: typedefs.h:53
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by InstallReactOS().

Variable Documentation

◆ AdminInfo

ADMIN_INFO AdminInfo
extern

Definition at line 38 of file install.c.

Referenced by InstallReactOS(), SetAdministratorPassword(), and SetAutoAdminLogon().

◆ hDllInstance

HINSTANCE hDllInstance
extern

Definition at line 17 of file browser.c.

◆ hSysSetupInf