ReactOS 0.4.15-dev-8093-g3285f69
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
 

Typedefs

typedef struct _ADMIN_INFO ADMIN_INFO
 
typedef struct _ADMIN_INFOPADMIN_INFO
 

Functions

BOOL RegisterTypeLibraries (HINF hinf, LPCWSTR szSection)
 
BOOL InstallNetworkComponent (_In_ PWSTR pszComponentId)
 
VOID InstallSecurity (VOID)
 
NTSTATUS SetAdministratorPassword (LPCWSTR Password)
 
VOID SetAutoAdminLogon (VOID)
 
VOID InstallWizard (VOID)
 

Variables

HINSTANCE hDllInstance
 
HINF hSysSetupInf
 
ADMIN_INFO AdminInfo
 

Typedef Documentation

◆ ADMIN_INFO

◆ PADMIN_INFO

Function Documentation

◆ 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 NULL
Definition: types.h:112
#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
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
#define DPRINT
Definition: sndvol32.h:73
#define ZeroMemory
Definition: winbase.h:1712
DWORD WINAPI GetLastError(void)
Definition: except.c:1042

Referenced by InstallLiveCD(), and InstallReactOS().

◆ InstallSecurity()

VOID InstallSecurity ( VOID  )

Definition at line 1569 of file security.c.

1570{
1571 HINF hSecurityInf;
1572 PWSTR pszSecurityInf;
1573
1574// if (IsServer())
1575// pszSecurityInf = L"defltsv.inf";
1576// else
1577 pszSecurityInf = L"defltwk.inf";
1578
1580
1581 hSecurityInf = SetupOpenInfFileW(pszSecurityInf,
1582 NULL,
1584 NULL);
1585 if (hSecurityInf != INVALID_HANDLE_VALUE)
1586 {
1587 InstallPrivileges(hSecurityInf);
1588 ApplyRegistryValues(hSecurityInf);
1589
1590 ApplyEventlogSettings(hSecurityInf, L"Application Log", L"Application");
1591 ApplyEventlogSettings(hSecurityInf, L"Security Log", L"Security");
1592 ApplyEventlogSettings(hSecurityInf, L"System Log", L"System");
1593
1594 ApplyPasswordSettings(hSecurityInf, L"System Access");
1595 ApplyLockoutSettings(hSecurityInf, L"System Access");
1596 ApplyAccountSettings(hSecurityInf, L"System Access");
1597
1598 ApplyAuditEvents(hSecurityInf);
1599
1600 SetupCloseInfFile(hSecurityInf);
1601 }
1602
1603 /* Hack */
1604 SetPrimaryDomain(L"WORKGROUP", NULL);
1605}
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
HINF WINAPI SetupOpenInfFileW(PCWSTR name, PCWSTR class, DWORD style, UINT *error)
Definition: parser.c:1229
static VOID InstallPrivileges(HINF hSecurityInf)
Definition: security.c:297
static VOID ApplyPasswordSettings(_In_ HINF hSecurityInf, _In_ PWSTR pszSectionName)
Definition: security.c:784
static VOID ApplyAuditEvents(_In_ HINF hSecurityInf)
Definition: security.c:1430
static VOID InstallBuiltinAccounts(VOID)
Definition: security.c:237
static VOID ApplyLockoutSettings(_In_ HINF hSecurityInf, _In_ PWSTR pszSectionName)
Definition: security.c:991
static NTSTATUS SetPrimaryDomain(LPCWSTR DomainName, PSID DomainSid)
Definition: security.c:153
static VOID ApplyRegistryValues(HINF hSecurityInf)
Definition: security.c:441
static VOID ApplyAccountSettings(_In_ HINF hSecurityInf, _In_ PWSTR pszSectionName)
Definition: security.c:1331
static VOID ApplyEventlogSettings(_In_ HINF hSecurityInf, _In_ PWSTR pszSectionName, _In_ PWSTR pszLogName)
Definition: security.c:640
#define INF_STYLE_WIN4
Definition: infsupp.h:41
#define L(x)
Definition: ntvdm.h:50
uint16_t * PWSTR
Definition: typedefs.h:56
VOID WINAPI SetupCloseInfFile(IN HINF InfHandle)
Definition: infsupp.c:45

Referenced by InstallReactOS().

◆ InstallWizard()

VOID InstallWizard ( VOID  )

Definition at line 3137 of file wizard.c.

3138{
3139 PROPSHEETHEADER psh = {0};
3140 HPROPSHEETPAGE *phpage = NULL;
3141 PROPSHEETPAGE psp = {0};
3142 UINT nPages = 0;
3143 HWND hWnd;
3144 MSG msg;
3145 PSETUPDATA pSetupData = NULL;
3146 HMODULE hNetShell = NULL;
3148 DWORD dwPageCount = 10, dwNetworkPageCount = 0;
3149
3150 LogItem(L"BEGIN_SECTION", L"InstallWizard");
3151
3152 /* Allocate setup data */
3153 pSetupData = HeapAlloc(GetProcessHeap(),
3155 sizeof(SETUPDATA));
3156 if (pSetupData == NULL)
3157 {
3158 LogItem(NULL, L"SetupData allocation failed!");
3160 L"Setup failed to allocate global data!",
3161 L"ReactOS Setup",
3163 goto done;
3164 }
3166
3167 hNetShell = LoadLibraryW(L"netshell.dll");
3168 if (hNetShell != NULL)
3169 {
3170 DPRINT("Netshell.dll loaded!\n");
3171
3172 pfn = (PFNREQUESTWIZARDPAGES)GetProcAddress(hNetShell,
3173 "NetSetupRequestWizardPages");
3174 if (pfn != NULL)
3175 {
3176 pfn(&dwNetworkPageCount, NULL, NULL);
3177 dwPageCount += dwNetworkPageCount;
3178 }
3179 }
3180
3181 DPRINT("PageCount: %lu\n", dwPageCount);
3182
3183 phpage = HeapAlloc(GetProcessHeap(),
3185 dwPageCount * sizeof(HPROPSHEETPAGE));
3186 if (phpage == NULL)
3187 {
3188 LogItem(NULL, L"Page array allocation failed!");
3190 L"Setup failed to allocate page array!",
3191 L"ReactOS Setup",
3193 goto done;
3194 }
3195
3196 /* Process the $winnt$.inf setup file */
3197 ProcessSetupInf(pSetupData);
3198
3199 /* Create the Welcome page */
3200 psp.dwSize = sizeof(PROPSHEETPAGE);
3201 psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER;
3202 psp.hInstance = hDllInstance;
3203 psp.lParam = (LPARAM)pSetupData;
3204 psp.pfnDlgProc = WelcomeDlgProc;
3205 psp.pszTemplate = MAKEINTRESOURCE(IDD_WELCOMEPAGE);
3206 phpage[nPages++] = CreatePropertySheetPage(&psp);
3207
3208 /* Create the Acknowledgements page */
3209 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3210 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_ACKTITLE);
3211 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_ACKSUBTITLE);
3212 psp.pszTemplate = MAKEINTRESOURCE(IDD_ACKPAGE);
3213 psp.pfnDlgProc = AckPageDlgProc;
3214 phpage[nPages++] = CreatePropertySheetPage(&psp);
3215
3216 /* Create the Product page */
3217 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3218 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_PRODUCTTITLE);
3219 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_PRODUCTSUBTITLE);
3220 psp.pszTemplate = MAKEINTRESOURCE(IDD_PRODUCT);
3221 psp.pfnDlgProc = ProductPageDlgProc;
3222 phpage[nPages++] = CreatePropertySheetPage(&psp);
3223
3224 /* Create the Locale page */
3225 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3226 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_LOCALETITLE);
3227 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_LOCALESUBTITLE);
3228 psp.pfnDlgProc = LocalePageDlgProc;
3229 psp.pszTemplate = MAKEINTRESOURCE(IDD_LOCALEPAGE);
3230 phpage[nPages++] = CreatePropertySheetPage(&psp);
3231
3232 /* Create the Owner page */
3233 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3234 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_OWNERTITLE);
3235 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_OWNERSUBTITLE);
3236 psp.pszTemplate = MAKEINTRESOURCE(IDD_OWNERPAGE);
3237 psp.pfnDlgProc = OwnerPageDlgProc;
3238 phpage[nPages++] = CreatePropertySheetPage(&psp);
3239
3240 /* Create the Computer page */
3241 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3242 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_COMPUTERTITLE);
3243 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_COMPUTERSUBTITLE);
3244 psp.pfnDlgProc = ComputerPageDlgProc;
3245 psp.pszTemplate = MAKEINTRESOURCE(IDD_COMPUTERPAGE);
3246 phpage[nPages++] = CreatePropertySheetPage(&psp);
3247
3248 /* Create the DateTime page */
3249 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3250 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_DATETIMETITLE);
3251 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_DATETIMESUBTITLE);
3252 psp.pfnDlgProc = DateTimePageDlgProc;
3253 psp.pszTemplate = MAKEINTRESOURCE(IDD_DATETIMEPAGE);
3254 phpage[nPages++] = CreatePropertySheetPage(&psp);
3255
3256 /* Create the theme selection page */
3257 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3258 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_THEMESELECTIONTITLE);
3259 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_THEMESELECTIONSUBTITLE);
3260 psp.pfnDlgProc = ThemePageDlgProc;
3261 psp.pszTemplate = MAKEINTRESOURCE(IDD_THEMEPAGE);
3262 phpage[nPages++] = CreatePropertySheetPage(&psp);
3263
3266
3267 if (pfn)
3268 {
3269 pfn(&dwNetworkPageCount, &phpage[nPages], pSetupData);
3270 nPages += dwNetworkPageCount;
3271 }
3272
3273 /* Create the Process page */
3274 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
3275 psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_PROCESSTITLE);
3276 psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_PROCESSSUBTITLE);
3277 psp.pfnDlgProc = ProcessPageDlgProc;
3278 psp.pszTemplate = MAKEINTRESOURCE(IDD_PROCESSPAGE);
3279 phpage[nPages++] = CreatePropertySheetPage(&psp);
3280
3281 /* Create the Finish page */
3282 psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER;
3283 psp.pfnDlgProc = FinishDlgProc;
3284 psp.pszTemplate = MAKEINTRESOURCE(IDD_FINISHPAGE);
3285 phpage[nPages++] = CreatePropertySheetPage(&psp);
3286
3287 ASSERT(nPages == dwPageCount);
3288
3289 /* Create the property sheet */
3290 psh.dwSize = sizeof(PROPSHEETHEADER);
3291 psh.dwFlags = PSH_WIZARD97 | PSH_WATERMARK | PSH_HEADER | PSH_MODELESS;
3292 psh.hInstance = hDllInstance;
3293 psh.hwndParent = NULL;
3294 psh.nPages = nPages;
3295 psh.nStartPage = 0;
3296 psh.phpage = phpage;
3297 psh.pszbmWatermark = MAKEINTRESOURCE(IDB_WATERMARK);
3298 psh.pszbmHeader = MAKEINTRESOURCE(IDB_HEADER);
3299
3300 /* Create title font */
3301 pSetupData->hTitleFont = CreateTitleFont();
3302 pSetupData->hBoldFont = CreateBoldFont();
3303
3304 /* Display the wizard */
3305 hWnd = (HWND)PropertySheet(&psh);
3307
3308 while (GetMessage(&msg, NULL, 0, 0))
3309 {
3310 if (!IsDialogMessage(hWnd, &msg))
3311 {
3314 }
3315 }
3316
3317 DeleteObject(pSetupData->hBoldFont);
3318 DeleteObject(pSetupData->hTitleFont);
3319
3320 if (pSetupData->hSetupInf != INVALID_HANDLE_VALUE)
3321 SetupCloseInfFile(pSetupData->hSetupInf);
3322
3323done:
3324 if (phpage != NULL)
3325 HeapFree(GetProcessHeap(), 0, phpage);
3326
3327 if (hNetShell != NULL)
3328 FreeLibrary(hNetShell);
3329
3330 if (pSetupData != NULL)
3331 HeapFree(GetProcessHeap(), 0, pSetupData);
3332
3333 LogItem(L"END_SECTION", L"InstallWizard");
3334}
#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:85
#define IDS_PROCESSTITLE
Definition: resource.h:84
#define IDB_WATERMARK
Definition: resource.h:4
#define IDD_PROCESSPAGE
Definition: resource.h:54
#define IDD_LOCALEPAGE
Definition: resource.h:13
static HINSTANCE hDllInstance
Definition: clb.c:30
#define IDD_FINISHPAGE
Definition: resource.h:34
#define IDD_DATETIMEPAGE
Definition: resource.h:5
HANDLE HWND
Definition: compat.h:19
#define GetProcAddress(x, y)
Definition: compat.h:753
#define HeapAlloc
Definition: compat.h:733
#define FreeLibrary(x)
Definition: compat.h:748
#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:127
#define IDS_LOCALESUBTITLE
Definition: resource.h:117
#define IDD_PRODUCT
Definition: resource.h:102
#define IDD_ACKPAGE
Definition: resource.h:41
#define IDS_ACKTITLE
Definition: resource.h:107
#define IDS_PRODUCTTITLE
Definition: resource.h:166
#define IDD_OWNERPAGE
Definition: resource.h:45
#define IDS_OWNERSUBTITLE
Definition: resource.h:111
#define IDS_COMPUTERSUBTITLE
Definition: resource.h:114
#define IDS_DATETIMESUBTITLE
Definition: resource.h:122
#define IDS_LOCALETITLE
Definition: resource.h:116
#define IDS_THEMESELECTIONSUBTITLE
Definition: resource.h:128
#define IDS_COMPUTERTITLE
Definition: resource.h:113
#define IDD_THEMEPAGE
Definition: resource.h:82
#define IDD_COMPUTERPAGE
Definition: resource.h:49
#define IDS_OWNERTITLE
Definition: resource.h:110
#define IDS_ACKSUBTITLE
Definition: resource.h:108
#define IDS_PRODUCTSUBTITLE
Definition: resource.h:167
#define IDS_DATETIMETITLE
Definition: resource.h:121
unsigned long DWORD
Definition: ntddk_ex.h:95
pKey DeleteObject()
#define ASSERT(a)
Definition: mode.c:44
struct _PSP * HPROPSHEETPAGE
Definition: mstask.idl:90
unsigned int UINT
Definition: ndis.h:50
#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: syssetup.h:37
PRODUCT_OPTION ProductOption
Definition: syssetup.h:61
UINT uPostNetworkWizardPage
Definition: syssetup.h:59
HFONT hTitleFont
Definition: reactos.h:117
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:219
static HFONT CreateTitleFont(VOID)
Definition: wizard.c:108
static INT_PTR CALLBACK FinishDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:2454
static INT_PTR CALLBACK ComputerPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:1067
static INT_PTR CALLBACK LocalePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:1414
static INT_PTR CALLBACK OwnerPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:822
static INT_PTR CALLBACK DateTimePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:1783
static HFONT CreateBoldFont(VOID)
Definition: wizard.c:129
VOID ProcessSetupInf(IN OUT PSETUPDATA pSetupData)
Definition: wizard.c:3002
DWORD(WINAPI * PFNREQUESTWIZARDPAGES)(PDWORD, HPROPSHEETPAGE *, PSETUPDATA)
Definition: wizard.c:3134
static INT_PTR CALLBACK ThemePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:1902
static INT_PTR CALLBACK AckPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:303
static INT_PTR CALLBACK ProcessPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:2331
static INT_PTR CALLBACK ProductPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: wizard.c:686
#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
LONG_PTR LPARAM
Definition: windef.h:208
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define IsDialogMessage
Definition: winuser.h:5809
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
#define MB_ICONERROR
Definition: winuser.h:787
#define GetMessage
Definition: winuser.h:5790
#define MB_OK
Definition: winuser.h:790
#define SW_SHOW
Definition: winuser.h:775
#define DispatchMessage
Definition: winuser.h:5765
#define MAKEINTRESOURCE
Definition: winuser.h:591

Referenced by InstallReactOS().

◆ RegisterTypeLibraries()

BOOL RegisterTypeLibraries ( HINF  hinf,
LPCWSTR  szSection 
)

Definition at line 438 of file install.c.

439{
440 INFCONTEXT InfContext;
441 BOOL res;
444 INT csidl;
445 LPWSTR p;
447 HRESULT hret;
448
449 /* Begin iterating the entries in the inf section */
450 res = SetupFindFirstLine(hinf, szSection, NULL, &InfContext);
451 if (!res) return FALSE;
452
453 do
454 {
455 /* Get the name of the current type library */
456 if (!SetupGetStringFieldW(&InfContext, 1, szName, ARRAYSIZE(szName), NULL))
457 {
458 FatalError("SetupGetStringFieldW failed\n");
459 continue;
460 }
461
462 if (!SetupGetIntField(&InfContext, 2, &csidl))
463 csidl = CSIDL_SYSTEM;
464
465 hret = SHGetFolderPathW(NULL, csidl, NULL, 0, szPath);
466 if (FAILED(hret))
467 {
468 FatalError("SHGetFolderPathW failed hret=0x%lx\n", hret);
469 continue;
470 }
471
473 wcscpy(p, szName);
474
476 if (hmod == NULL)
477 {
478 FatalError("LoadLibraryW failed\n");
479 continue;
480 }
481
483
484 } while (SetupFindNextLine(&InfContext, &InfContext));
485
486 return TRUE;
487}
#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:2589
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 PEXPLICIT_ACCESSW *static HMODULE hmod
Definition: security.c:143
static const WCHAR szName[]
Definition: powrprof.c:45
HRESULT __wine_register_resources(HMODULE module) DECLSPEC_HIDDEN
Definition: register.c:98
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define SetupFindFirstLine
Definition: setupapi.h:2624
#define CSIDL_SYSTEM
Definition: shlobj.h:2195
#define PathAddBackslash
Definition: shlwapi.h:783
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
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by InstallLiveCD(), and ItemCompletionThread().

◆ SetAdministratorPassword()

NTSTATUS SetAdministratorPassword ( LPCWSTR  Password)

Definition at line 1609 of file security.c.

1610{
1612 PUSER_ACCOUNT_NAME_INFORMATION AccountNameInfo = NULL;
1613 USER_SET_PASSWORD_INFORMATION PasswordInfo;
1615 LSA_HANDLE PolicyHandle = NULL;
1616 SAM_HANDLE ServerHandle = NULL;
1617 SAM_HANDLE DomainHandle = NULL;
1618 SAM_HANDLE UserHandle = NULL;
1620
1621 DPRINT("SYSSETUP: SetAdministratorPassword(%p)\n", Password);
1622
1625
1629 &PolicyHandle);
1630 if (Status != STATUS_SUCCESS)
1631 {
1632 DPRINT1("LsaOpenPolicy() failed (Status: 0x%08lx)\n", Status);
1633 return Status;
1634 }
1635
1636 Status = LsaQueryInformationPolicy(PolicyHandle,
1638 (PVOID *)&OrigInfo);
1639 if (!NT_SUCCESS(Status))
1640 {
1641 DPRINT1("LsaQueryInformationPolicy() failed (Status: 0x%08lx)\n", Status);
1642 goto done;
1643 }
1644
1646 &ServerHandle,
1648 NULL);
1649 if (!NT_SUCCESS(Status))
1650 {
1651 DPRINT1("SamConnect() failed (Status: 0x%08lx)\n", Status);
1652 goto done;
1653 }
1654
1655 Status = SamOpenDomain(ServerHandle,
1657 OrigInfo->DomainSid,
1658 &DomainHandle);
1659 if (!NT_SUCCESS(Status))
1660 {
1661 DPRINT1("SamOpenDomain() failed (Status: 0x%08lx)\n", Status);
1662 goto done;
1663 }
1664
1665 Status = SamOpenUser(DomainHandle,
1668 &UserHandle);
1669 if (!NT_SUCCESS(Status))
1670 {
1671 DPRINT1("SamOpenUser() failed (Status %08lx)\n", Status);
1672 goto done;
1673 }
1674
1675 RtlInitUnicodeString(&PasswordInfo.Password, Password);
1676 PasswordInfo.PasswordExpired = FALSE;
1677
1678 Status = SamSetInformationUser(UserHandle,
1680 &PasswordInfo);
1681 if (!NT_SUCCESS(Status))
1682 {
1683 DPRINT1("SamSetInformationUser() failed (Status %08lx)\n", Status);
1684 goto done;
1685 }
1686
1687 Status = SamQueryInformationUser(UserHandle,
1689 (PVOID*)&AccountNameInfo);
1690 if (!NT_SUCCESS(Status))
1691 {
1692 DPRINT1("SamQueryInformationUser() failed (Status 0x%08lx)\n", Status);
1693 goto done;
1694 }
1695
1696 AdminInfo.Name = RtlAllocateHeap(RtlGetProcessHeap(),
1698 AccountNameInfo->UserName.Length + sizeof(WCHAR));
1699 if (AdminInfo.Name != NULL)
1701 AccountNameInfo->UserName.Buffer,
1702 AccountNameInfo->UserName.Length);
1703
1704 AdminInfo.Domain = RtlAllocateHeap(RtlGetProcessHeap(),
1706 OrigInfo->DomainName.Length + sizeof(WCHAR));
1707 if (AdminInfo.Domain != NULL)
1709 OrigInfo->DomainName.Buffer,
1710 OrigInfo->DomainName.Length);
1711
1712 AdminInfo.Password = RtlAllocateHeap(RtlGetProcessHeap(),
1713 0,
1714 (wcslen(Password) + 1) * sizeof(WCHAR));
1715 if (AdminInfo.Password != NULL)
1717
1718 DPRINT("Administrator Name: %S\n", AdminInfo.Name);
1719 DPRINT("Administrator Domain: %S\n", AdminInfo.Domain);
1720 DPRINT("Administrator Password: %S\n", AdminInfo.Password);
1721
1722done:
1723 if (AccountNameInfo != NULL)
1724 SamFreeMemory(AccountNameInfo);
1725
1726 if (OrigInfo != NULL)
1727 LsaFreeMemory(OrigInfo);
1728
1729 if (PolicyHandle != NULL)
1730 LsaClose(PolicyHandle);
1731
1732 if (UserHandle != NULL)
1733 SamCloseHandle(UserHandle);
1734
1735 if (DomainHandle != NULL)
1736 SamCloseHandle(DomainHandle);
1737
1738 if (ServerHandle != NULL)
1739 SamCloseHandle(ServerHandle);
1740
1741 DPRINT1("SYSSETUP: SetAdministratorPassword() done (Status %08lx)\n", Status);
1742
1743 return Status;
1744}
LONG NTSTATUS
Definition: precomp.h:26
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:590
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
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
ADMIN_INFO AdminInfo
Definition: install.c:38
Status
Definition: gdiplustypes.h:25
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
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:65
#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 1748 of file security.c.

1749{
1750 WCHAR szAutoAdminLogon[2];
1751 HKEY hKey = NULL;
1752 DWORD dwType;
1753 DWORD dwSize;
1754 LONG lError;
1755
1757 L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",
1758 0,
1760 &hKey);
1761 if (lError != ERROR_SUCCESS)
1762 return;
1763
1764 dwSize = 2 * sizeof(WCHAR);
1765 lError = RegQueryValueExW(hKey,
1766 L"AutoAdminLogon",
1767 NULL,
1768 &dwType,
1769 (LPBYTE)szAutoAdminLogon,
1770 &dwSize);
1771 if (lError != ERROR_SUCCESS)
1772 goto done;
1773
1774 if (wcscmp(szAutoAdminLogon, L"1") == 0)
1775 {
1777 L"DefaultDomainName",
1778 0,
1779 REG_SZ,
1781 (wcslen(AdminInfo.Domain) + 1) * sizeof(WCHAR));
1782
1784 L"DefaultUserName",
1785 0,
1786 REG_SZ,
1788 (wcslen(AdminInfo.Name) + 1) * sizeof(WCHAR));
1789
1791 L"DefaultPassword",
1792 0,
1793 REG_SZ,
1795 (wcslen(AdminInfo.Password) + 1) * sizeof(WCHAR));
1796 }
1797
1798done:
1799 if (hKey != NULL)
1801}
#define ERROR_SUCCESS
Definition: deptool.c:10
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
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:1023
#define KEY_WRITE
Definition: nt_native.h:1031
long LONG
Definition: pedump.c:60
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
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