/*++ Copyright (c) 1997 Microsoft Corporation Module Name: usermig.c Abstract: User migration test tool Author: () Revision History: --*/ #include "pch.h" BOOL Init ( VOID ) { HINSTANCE hInstance; DWORD dwReason; PVOID lpReserved; // // Simulate DllMain // hInstance = GetModuleHandle (NULL); dwReason = DLL_PROCESS_ATTACH; lpReserved = NULL; // // Initialize DLL globals // if (!FirstInitRoutine (hInstance)) { return FALSE; } // // Initialize all libraries // if (!InitLibs (hInstance, dwReason, lpReserved)) { return FALSE; } // // Final initialization // if (!FinalInitRoutine ()) { return FALSE; } return TRUE; } VOID Terminate ( VOID ) { HINSTANCE hInstance; DWORD dwReason; PVOID lpReserved; // // Simulate DllMain // hInstance = GetModuleHandle (NULL); dwReason = DLL_PROCESS_DETACH; lpReserved = NULL; // // Call the cleanup routine that requires library APIs // FirstCleanupRoutine(); // // Clean up all libraries // TerminateLibs (hInstance, dwReason, lpReserved); // // Do any remaining clean up // FinalCleanupRoutine(); } INT __cdecl wmain ( INT argc, WCHAR *argv[] ) { LONG rc; TCHAR DefaultUserHive[MAX_TCHAR_PATH]; DWORD Size; if (!Init()) { wprintf (L"Unable to initialize!\n"); return 255; } // // Initialize Win95Reg // rc = Win95RegInit (TEXT("c:\\windows\\setup\\defhives"), TRUE); if (rc != ERROR_SUCCESS) { SetLastError (rc); LOG ((LOG_ERROR, "Init Processor: Win95RegInit failed, check your temp files in c:\\windows\\setup")); return FALSE; } if (!MemDbLoad (TEXT("c:\\windows\\setup\\ntsetup.dat"))) { LOG ((LOG_ERROR, "Init Processor: MemDbLoad failed, check your temp files in c:\\windows\\setup")); return FALSE; } g_DomainUserName = TEXT("NTDEV\\jimschm"); g_Win9xUserName = TEXT("jimschm"); g_FixedUserName = TEXT("jimschm"); // // Logon prompt -- make everything NULL // if (0) { g_DomainUserName = NULL; g_Win9xUserName = NULL; g_FixedUserName = NULL; } // // Map in the default user hive // Size = ARRAYSIZE(DefaultUserHive)- 12; if (!GetDefaultUserProfileDirectory (DefaultUserHive, &Size)) { LOG (( LOG_ERROR, "Process User: Can't get default user profile directory", DefaultUserHive )); return FALSE; } StringCopy (AppendWack (DefaultUserHive), TEXT("ntuser.dat")); pSetupEnablePrivilege (SE_BACKUP_NAME, TRUE); pSetupEnablePrivilege (SE_RESTORE_NAME, TRUE); RegUnLoadKey (HKEY_LOCAL_MACHINE, S_MAPPED_DEFAULT_USER_KEY); rc = RegLoadKey ( HKEY_LOCAL_MACHINE, S_MAPPED_DEFAULT_USER_KEY, DefaultUserHive ); if (rc != ERROR_SUCCESS) { SetLastError (rc); LOG (( LOG_ERROR, "Process User: RegLoadKey could not load NT Default User from %s", DefaultUserHive )); return FALSE; } InitializeProgressBar (NULL, NULL, NULL, NULL); g_hKeyRootNT = HKEY_CURRENT_USER; g_hKeyRoot95 = HKEY_CURRENT_USER; SetRegRoot (g_hKeyRoot95); MergeRegistry (TEXT("d:\\i386\\usermig.inf"), g_DomainUserName ? g_DomainUserName : TEXT("")); RegUnLoadKey (HKEY_LOCAL_MACHINE, S_MAPPED_DEFAULT_USER_KEY); Terminate(); return 0; }