/*++ Copyright (c) 1992 Microsoft Corporation Module Name: spntfix.h Abstract: initializing and maintaining list of nts to repair Author: Shie-Lin Tzong (shielint) 6-Feb-1994 Revision History: --*/ #ifndef _SPNTFIX_H_ #define _SPNTFIX_H_ // // Repair items - // defines the items which setup can repair // Note, the ordering must be the same as SP_REPAIR_MENU_ITEM_x defined in msg.mc. typedef enum { // RepairHives, // BCL - Seagate: hives will not be in the menu. RepairNvram, RepairFiles, #if defined(_AMD64_) || defined(_X86_) RepairBootSect, #endif // defined(_AMD64_) || defined(_X86_) RepairItemMax } RepairItem; // // The hives that repair cares about. We pass around the keys to the hives // in an array. Use the following enum values to access // the hive members // Note, the ordering of the hives must be the same as SP_REPAIE_HIVE_ITEM_x // defined in msg.mc. // typedef enum { RepairHiveSystem, RepairHiveSoftware, RepairHiveDefault, RepairHiveUser, RepairHiveSecurity, RepairHiveSam, RepairHiveMax } RepairHive; // // Public functions // BOOLEAN SpDisplayRepairMenu( VOID ); BOOLEAN SpFindNtToRepair( IN PVOID SifHandle, OUT PDISK_REGION *TargetRegion, OUT PWSTR *TargetPath, OUT PDISK_REGION *SystemPartitionRegion, OUT PWSTR *SystemPartitionDirectory, OUT PBOOLEAN RepairableBootSetsFound ); VOID SpRepairWinnt( IN PVOID LogFileHandle, IN PVOID MasterSifHandle, IN PWSTR SourceDevicePath, IN PWSTR DirectoryOnSourceDevice ); VOID SpRepairDiskette( OUT PVOID *SifHandle, OUT PDISK_REGION *TargetRegion, OUT PWSTR *TargetPath, OUT PDISK_REGION *SystemPartitionRegion, OUT PWSTR *SystemPartitionDirectory ); BOOLEAN SpLoadRepairLogFile( IN PWCHAR Filename, OUT PVOID *Handle ); BOOLEAN SpErDiskScreen ( BOOLEAN *HasErDisk ); // // Private functions // BOOLEAN SppSelectNTSingleRepair( IN PDISK_REGION Region, IN PWSTR OsLoadFileName, IN PWSTR LoadIdentifier ); BOOLEAN SppSelectNTMultiRepair( OUT PSP_BOOT_ENTRY *BootSetChosen ); BOOLEAN SppRepairReportError( IN BOOLEAN AllowEsc, IN ULONG ErrorScreenId, IN ULONG SubErrorId, IN PWSTR SectionName, IN ULONG LineNumber, IN PBOOLEAN DoNotPromptAgain ); VOID SppVerifyAndRepairFiles( IN PVOID LogFileHandle, IN PVOID MasterSifHandle, IN PWSTR SectionName, IN PWSTR SourceDevicePath, IN PWSTR DirectoryOnSourceDevice, IN PWSTR TargetDevicePath, IN PWSTR DirectoryOnTargetDevice, IN BOOLEAN SystemPartitionFiles, IN OUT PBOOLEAN RepairWithoutConfirming ); VOID SppVerifyAndRepairNtTreeAccess( IN PVOID MasterSifHandle, IN PWSTR TargetDevicePath, IN PWSTR DirectoryOnTargetDevice, IN PWSTR SystemPartition, IN PWSTR SystemPartitionDirectory ); VOID SppVerifyAndRepairVdmFiles( IN PVOID LogFileHandle, IN PWSTR TargetDevicePath, IN PWSTR DirectoryOnTargetDevice, IN OUT PBOOLEAN RepairWithoutConfirming ); VOID SppGetRepairPathInformation( IN PVOID LogFileHandle, OUT PWSTR *SystemPartition, OUT PWSTR *SystemPartitionDirectory, OUT PWSTR *WinntPartition, OUT PWSTR *WinntPartitionDirectory ); // // External functions // extern VOID SpCopyFilesScreenRepaint( IN PWSTR FullSourcename, OPTIONAL IN PWSTR FullTargetname, OPTIONAL IN BOOLEAN RepaintEntireScreen ); // // External data references // extern PVOID RepairGauge; extern ULONG RepairItems[RepairItemMax]; extern BOOLEAN RepairFromErDisk; extern PVOID Gbl_HandleToSetupLog; extern PWSTR Gbl_SystemPartitionName; extern PWSTR Gbl_SystemPartitionDirectory; extern PWSTR Gbl_BootPartitionName; extern PWSTR Gbl_BootPartitionDirectory; #endif // for _SPNTFIX_H_