ReactOS 0.4.17-dev-470-gf9e3448
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

HRESULT InstallOptionalComponents (_In_ PITEMSDATA pItemsData)
 
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

◆ InstallOptionalComponents()

HRESULT InstallOptionalComponents ( _In_ PITEMSDATA  pItemsData)

Definition at line 135 of file addons.c.

137{
138 HRESULT hr = S_OK;
139 PSETUPDATA pSetupData;
141 RappsConsent Consent = NOT_ASKED;
142
143 /* The last element in Addons is null, don't count it as a step. */
144 SendMessage(pItemsData->hwndDlg, PM_ITEM_START, 3, (LPARAM)(ARRAYSIZE(Addons) - 1));
145 pSetupData = (PSETUPDATA)GetWindowLongPtr(pItemsData->hwndDlg, GWLP_USERDATA);
146
147 if (pSetupData->UnattendSetup)
148 Consent = pSetupData->RappsDownload ? APPROVED : DENIED;
149
150 for (DWORD i = 0; i < ARRAYSIZE(Addons); i++)
151 {
152 if (Addons[i].AddonPath == NULL
153 || Addons[i].CreateProcessFormatString == NULL
154 || Addons[i].RappsId == NULL)
155 continue;
156
157 hr = InstallAddon(&Addons[i], &Consent, pItemsData, &Notify);
158
159 /* Cancelling rapps install is not an error. Reset hr to S_OK. */
161 hr = S_OK;
162
163 if (!SUCCEEDED(hr))
164 {
165 WCHAR szMessage[256], szCaption[64];
168 MessageBoxW(NULL, szMessage, szCaption,
170 break;
171 }
172 }
173
174 SendMessage(pItemsData->hwndDlg, PM_ITEM_END, 3, HRESULT_CODE(hr));
175 return hr;
176}
struct _SETUPDATA * PSETUPDATA
static HINSTANCE hDllInstance
Definition: clb.c:9
HRESULT hr
Definition: delayimp.cpp:582
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
#define PM_ITEM_START
Definition: globals.h:52
#define PM_ITEM_END
Definition: globals.h:57
#define IDS_INSTALLADDONSFAILEDMESSAGE
Definition: resource.h:193
#define IDS_INSTALLADDONSCAPTION
Definition: resource.h:191
unsigned long DWORD
Definition: ntddk_ex.h:95
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
Definition: glfuncs.h:248
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
LONG_PTR LPARAM
Definition: minwindef.h:175
short WCHAR
Definition: pedump.c:58
#define LoadStringW
Definition: utils.h:64
BOOL UnattendSetup
Definition: syssetup.h:50
BOOL RappsDownload
Definition: syssetup.h:51
#define GetWindowLongPtr
Definition: treelist.c:73
#define GWLP_USERDATA
Definition: treelist.c:63
@ APPROVED
Definition: addons.c:14
@ DENIED
Definition: addons.c:15
@ NOT_ASKED
Definition: addons.c:13
HRESULT InstallAddon(_In_ PCADDON_INSTALL_DATA pInstallData, _Inout_ RappsConsent *Consent, _In_ PITEMSDATA pItemsData, _Inout_ PREGISTRATIONNOTIFY pNotify)
Definition: addons.c:67
enum _RappsConsent RappsConsent
static const ADDON_INSTALL_DATA Addons[]
Definition: addons.c:28
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
Definition: winerror.h:210
#define ERROR_CANCELLED
Definition: winerror.h:1055
#define HRESULT_CODE(hr)
Definition: winerror.h:188
#define MB_TOPMOST
Definition: winuser.h:836
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
#define SendMessage
Definition: winuser.h:6009
#define MB_OK
Definition: winuser.h:801
#define MB_ICONWARNING
Definition: winuser.h:797

Referenced by ItemCompletionThread().

◆ 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}
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

Referenced by ItemCompletionThread().

◆ InstallWizard()

VOID InstallWizard ( VOID  )

Definition at line 3460 of file wizard.c.

3461{
3462 PROPSHEETHEADER psh = {0};
3463 HPROPSHEETPAGE *phpage = NULL;
3464 PROPSHEETPAGE psp = {0};
3465 UINT nPages = 0;
3466 HWND hWnd;
3467 MSG msg;
3468 PSETUPDATA pSetupData = NULL;
3469 HMODULE hNetShell = NULL;
3471 DWORD dwPageCount = 10, dwNetworkPageCount = 0;
3472
3473 LogItem(L"BEGIN_SECTION", L"InstallWizard");
3474
3475 /* Allocate setup data */
3476 pSetupData = HeapAlloc(GetProcessHeap(),
3478 sizeof(SETUPDATA));
3479 if (pSetupData == NULL)
3480 {
3481 LogItem(NULL, L"SetupData allocation failed!");
3483 L"Setup failed to allocate global data!",
3484 L"ReactOS Setup",
3486 goto done;
3487 }
3489
3490 hNetShell = LoadLibraryW(L"netshell.dll");
3491 if (hNetShell != NULL)
3492 {
3493 DPRINT("Netshell.dll loaded!\n");
3494
3495 pfn = (PFNREQUESTWIZARDPAGES)GetProcAddress(hNetShell,
3496 "NetSetupRequestWizardPages");
3497 if (pfn != NULL)
3498 {
3499 pfn(&dwNetworkPageCount, NULL, NULL);
3500 dwPageCount += dwNetworkPageCount;
3501 }
3502 }
3503
3504 DPRINT("PageCount: %lu\n", dwPageCount);
3505
3506 phpage = HeapAlloc(GetProcessHeap(),
3508 dwPageCount * sizeof(HPROPSHEETPAGE));
3509 if (phpage == NULL)
3510 {
3511 LogItem(NULL, L"Page array allocation failed!");
3513 L"Setup failed to allocate page array!",
3514 L"ReactOS Setup",
3516 goto done;
3517 }
3518
3519 /* Process the $winnt$.inf setup file */
3520 ProcessSetupInf(pSetupData);
3521
3522 /* Create the Welcome page */
3523 psp.dwSize = sizeof(PROPSHEETPAGE);
3524 psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER;
3525 psp.hInstance = hDllInstance;
3526 psp.lParam = (LPARAM)pSetupData;
3527 psp.pfnDlgProc = WelcomeDlgProc;
3528 psp.pszTemplate = MAKEINTRESOURCE(IDD_WELCOMEPAGE);
3529 phpage[nPages++] = CreatePropertySheetPage(&psp);
3530
3531 /* Create the Acknowledgements page */
3532 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3533 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_ACKTITLE);
3534 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_ACKSUBTITLE);
3535 psp.pszTemplate = MAKEINTRESOURCE(IDD_ACKPAGE);
3536 psp.pfnDlgProc = AckPageDlgProc;
3537 phpage[nPages++] = CreatePropertySheetPage(&psp);
3538
3539 /* Create the Installation Type page */
3540 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3541 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_INSTALLATIONTITLE);
3542 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_INSTALLATIONSUBTITLE);
3543 psp.pszTemplate = MAKEINTRESOURCE(IDD_INSTALLATION);
3544 psp.pfnDlgProc = InstallTypePageDlgProc;
3545 phpage[nPages++] = CreatePropertySheetPage(&psp);
3546
3547 /* Create the Locale page */
3548 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3549 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_LOCALETITLE);
3550 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_LOCALESUBTITLE);
3551 psp.pfnDlgProc = LocalePageDlgProc;
3552 psp.pszTemplate = MAKEINTRESOURCE(IDD_LOCALEPAGE);
3553 phpage[nPages++] = CreatePropertySheetPage(&psp);
3554
3555 /* Create the Owner page */
3556 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3557 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_OWNERTITLE);
3558 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_OWNERSUBTITLE);
3559 psp.pszTemplate = MAKEINTRESOURCE(IDD_OWNERPAGE);
3560 psp.pfnDlgProc = OwnerPageDlgProc;
3561 phpage[nPages++] = CreatePropertySheetPage(&psp);
3562
3563 /* Create the Computer page */
3564 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3565 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_COMPUTERTITLE);
3566 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_COMPUTERSUBTITLE);
3567 psp.pfnDlgProc = ComputerPageDlgProc;
3568 psp.pszTemplate = MAKEINTRESOURCE(IDD_COMPUTERPAGE);
3569 phpage[nPages++] = CreatePropertySheetPage(&psp);
3570
3571 /* Create the DateTime page */
3572 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3573 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_DATETIMETITLE);
3574 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_DATETIMESUBTITLE);
3575 psp.pfnDlgProc = DateTimePageDlgProc;
3576 psp.pszTemplate = MAKEINTRESOURCE(IDD_DATETIMEPAGE);
3577 phpage[nPages++] = CreatePropertySheetPage(&psp);
3578
3579 /* Create the theme selection page */
3580 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3581 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_THEMESELECTIONTITLE);
3582 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_THEMESELECTIONSUBTITLE);
3583 psp.pfnDlgProc = ThemePageDlgProc;
3584 psp.pszTemplate = MAKEINTRESOURCE(IDD_THEMEPAGE);
3585 phpage[nPages++] = CreatePropertySheetPage(&psp);
3586
3589
3590 if (pfn)
3591 {
3592 pfn(&dwNetworkPageCount, &phpage[nPages], pSetupData);
3593 nPages += dwNetworkPageCount;
3594 }
3595
3596 /* Create the Process page */
3597 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3598 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_PROCESSTITLE);
3599 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_PROCESSSUBTITLE);
3600 psp.pfnDlgProc = ProcessPageDlgProc;
3601 psp.pszTemplate = MAKEINTRESOURCE(IDD_PROCESSPAGE);
3602 phpage[nPages++] = CreatePropertySheetPage(&psp);
3603
3604 /* Create the Finish page */
3605 psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER;
3606 psp.pfnDlgProc = FinishDlgProc;
3607 psp.pszTemplate = MAKEINTRESOURCE(IDD_FINISHPAGE);
3608 phpage[nPages++] = CreatePropertySheetPage(&psp);
3609
3610 ASSERT(nPages == dwPageCount);
3611
3612 /* Create the property sheet */
3613 psh.dwSize = sizeof(PROPSHEETHEADER);
3614 psh.dwFlags = PSH_WIZARD97 | PSH_WATERMARK | PSH_HEADER | PSH_MODELESS;
3615 psh.hInstance = hDllInstance;
3616 psh.hwndParent = NULL;
3617 psh.nPages = nPages;
3618 psh.nStartPage = 0;
3619 psh.phpage = phpage;
3620 psh.pszbmWatermark = MAKEINTRESOURCE(IDB_WATERMARK);
3621 psh.pszbmHeader = MAKEINTRESOURCE(IDB_HEADER);
3622
3623 /* Create title font */
3624 pSetupData->hTitleFont = CreateTitleFont();
3625 pSetupData->hBoldFont = CreateBoldFont();
3626
3627 /* Display the wizard */
3628 hWnd = (HWND)PropertySheet(&psh);
3630
3631 while (GetMessage(&msg, NULL, 0, 0))
3632 {
3633 if (!IsDialogMessage(hWnd, &msg))
3634 {
3637 }
3638 }
3639
3640 DeleteObject(pSetupData->hBoldFont);
3641 DeleteObject(pSetupData->hTitleFont);
3642
3643 if (pSetupData->hSetupInf != INVALID_HANDLE_VALUE)
3644 SetupCloseInfFile(pSetupData->hSetupInf);
3645
3646done:
3647 if (phpage != NULL)
3648 HeapFree(GetProcessHeap(), 0, phpage);
3649
3650 if (hNetShell != NULL)
3651 FreeLibrary(hNetShell);
3652
3653 if (pSetupData != NULL)
3654 HeapFree(GetProcessHeap(), 0, pSetupData);
3655
3656 LogItem(L"END_SECTION", L"InstallWizard");
3657}
#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:109
#define IDS_PROCESSTITLE
Definition: resource.h:108
#define IDB_WATERMARK
Definition: resource.h:13
#define IDD_PROCESSPAGE
Definition: resource.h:69
#define IDD_FINISHPAGE
Definition: resource.h:74
#define IDD_LOCALEPAGE
Definition: resource.h:13
#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:137
#define IDS_INSTALLATIONSUBTITLE
Definition: resource.h:177
#define IDS_LOCALESUBTITLE
Definition: resource.h:127
#define IDD_ACKPAGE
Definition: resource.h:44
#define IDS_ACKTITLE
Definition: resource.h:117
#define IDD_OWNERPAGE
Definition: resource.h:48
#define IDS_OWNERSUBTITLE
Definition: resource.h:121
#define IDD_INSTALLATION
Definition: resource.h:112
#define IDS_COMPUTERSUBTITLE
Definition: resource.h:124
#define IDS_INSTALLATIONTITLE
Definition: resource.h:176
#define IDS_DATETIMESUBTITLE
Definition: resource.h:132
#define IDS_LOCALETITLE
Definition: resource.h:126
#define IDS_THEMESELECTIONSUBTITLE
Definition: resource.h:138
#define IDS_COMPUTERTITLE
Definition: resource.h:123
#define IDD_THEMEPAGE
Definition: resource.h:92
#define IDD_COMPUTERPAGE
Definition: resource.h:52
#define IDS_OWNERTITLE
Definition: resource.h:120
#define IDS_ACKSUBTITLE
Definition: resource.h:118
#define IDS_DATETIMETITLE
Definition: resource.h:131
pKey DeleteObject()
unsigned int UINT
Definition: sysinfo.c:13
#define ASSERT(a)
Definition: mode.c:44
struct _PSP * HPROPSHEETPAGE
Definition: mstask.idl:90
#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
INSTALLATION_TYPE InstallationType
Definition: syssetup.h:65
HFONT hBoldFont
Definition: reactos.h:126
UINT uPostNetworkWizardPage
Definition: syssetup.h:63
HFONT hTitleFont
Definition: reactos.h:125
UINT uFirstNetworkWizardPage
Definition: syssetup.h:62
HINF hSetupInf
Definition: syssetup.h:60
static INT_PTR CALLBACK WelcomeDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:192
static HFONT CreateTitleFont(VOID)
Definition: wizard.c:81
static INT_PTR CALLBACK FinishDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:2772
static INT_PTR CALLBACK ComputerPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:1122
static INT_PTR CALLBACK LocalePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:1557
static INT_PTR CALLBACK OwnerPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:872
static INT_PTR CALLBACK DateTimePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:1973
static HFONT CreateBoldFont(VOID)
Definition: wizard.c:102
VOID ProcessSetupInf(IN OUT PSETUPDATA pSetupData)
Definition: wizard.c:3325
DWORD(WINAPI * PFNREQUESTWIZARDPAGES)(PDWORD, HPROPSHEETPAGE *, PSETUPDATA)
Definition: wizard.c:3457
static INT_PTR CALLBACK ThemePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:2119
static INT_PTR CALLBACK AckPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:287
static INT_PTR CALLBACK InstallTypePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:718
static INT_PTR CALLBACK ProcessPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:2624
#define LogItem(lpTag, lpMessageText...)
Definition: syssetup.h:102
@ INSTALLATION_TYPE_DEFAULT
Definition: syssetup.h:34
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
#define MB_ICONERROR
Definition: winuser.h:798
#define GetMessage
Definition: winuser.h:5956
#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 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:104
#define PathAddBackslash
Definition: pathcch.h:300
static const WCHAR szName[]
Definition: powrprof.c:45
wcscpy
#define SetupFindFirstLine
Definition: setupapi.h:2645
#define CSIDL_SYSTEM
Definition: shlobj.h:2226
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:2988
ADMIN_INFO AdminInfo
Definition: install.c:38
Status
Definition: gdiplustypes.h:24
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:1977
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