+NTSTATUS
+InitDestinationPaths(
+ IN OUT PUSETUP_DATA pSetupData,
+ IN PCWSTR InstallationDir,
+ IN PDISKENTRY DiskEntry, // FIXME: HACK!
+ IN PPARTENTRY PartEntry); // FIXME: HACK!
+
+// NTSTATUS
+ERROR_NUMBER
+InitializeSetup(
+ IN OUT PUSETUP_DATA pSetupData,
+ IN ULONG InitPhase);
+
+VOID
+FinishSetup(
+ IN OUT PUSETUP_DATA pSetupData);
+
+
+typedef enum _REGISTRY_STATUS
+{
+ Success = 0,
+ RegHiveUpdate,
+ ImportRegHive,
+ DisplaySettingsUpdate,
+ LocaleSettingsUpdate,
+ KeybLayouts,
+ KeybSettingsUpdate,
+ CodePageInfoUpdate,
+} REGISTRY_STATUS;
+
+typedef VOID
+(__cdecl *PREGISTRY_STATUS_ROUTINE)(IN REGISTRY_STATUS, ...);
+
+ERROR_NUMBER
+UpdateRegistry(
+ IN OUT PUSETUP_DATA pSetupData,
+ /**/IN BOOLEAN RepairUpdateFlag, /* HACK HACK! */
+ /**/IN PPARTLIST PartitionList, /* HACK HACK! */
+ /**/IN WCHAR DestinationDriveLetter, /* HACK HACK! */
+ /**/IN PCWSTR SelectedLanguageId, /* HACK HACK! */
+ IN PREGISTRY_STATUS_ROUTINE StatusRoutine OPTIONAL);