726 lines
17 KiB
C
726 lines
17 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1992 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
dos2nt.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
Local include file for DOS based NT Setup program.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Ted Miller (tedm) 30-March-1992
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
#include <setupbat.h>
|
|||
|
#include "nttypes.h"
|
|||
|
#include <stdio.h>
|
|||
|
#include "dninf.h"
|
|||
|
#include "sptxtcns.h"
|
|||
|
#include <stdarg.h>
|
|||
|
#include "SetupSxs.h"
|
|||
|
|
|||
|
//
|
|||
|
// Define structure used to hold a text screen.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _SCREEN {
|
|||
|
UCHAR X;
|
|||
|
UCHAR Y;
|
|||
|
PCHAR Strings[];
|
|||
|
} SCREEN, *PSCREEN;
|
|||
|
|
|||
|
//
|
|||
|
// Define structure that contains information about disk space requirements
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _SPACE_REQUIREMENT {
|
|||
|
PCHAR Key;
|
|||
|
unsigned ClusterSize;
|
|||
|
ULONG Clusters;
|
|||
|
} SPACE_REQUIREMENT, *PSPACE_REQUIREMENT;
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// define virtualized keycodes
|
|||
|
//
|
|||
|
|
|||
|
#define ASCI_BS 8
|
|||
|
#define ASCI_CR 13
|
|||
|
#define ASCI_ESC 27
|
|||
|
#define DN_KEY_UP 0x00010000
|
|||
|
#define DN_KEY_DOWN 0x00020000
|
|||
|
#define DN_KEY_HOME 0x00030000
|
|||
|
#define DN_KEY_END 0x00040000
|
|||
|
#define DN_KEY_PAGEUP 0x00050000
|
|||
|
#define DN_KEY_PAGEDOWN 0x00060000
|
|||
|
#define DN_KEY_F1 0x01000000
|
|||
|
#define DN_KEY_F2 0x02000000
|
|||
|
#define DN_KEY_F3 0x03000000
|
|||
|
#define DN_KEY_F4 0x04000000
|
|||
|
|
|||
|
//
|
|||
|
// define characters for radio buttons
|
|||
|
//
|
|||
|
#define RADIO_ON ((CHAR)'X')
|
|||
|
#define RADIO_OFF ((CHAR)' ')
|
|||
|
|
|||
|
//
|
|||
|
// Display functions
|
|||
|
//
|
|||
|
|
|||
|
VOID
|
|||
|
DnInitializeDisplay(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnClearClientArea(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnSetGaugeAttribute(
|
|||
|
IN BOOLEAN Set
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnPositionCursor(
|
|||
|
IN UCHAR X,
|
|||
|
IN UCHAR Y
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnWriteChar(
|
|||
|
IN CHAR chr
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnWriteString(
|
|||
|
IN PCHAR String
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnWriteStatusText(
|
|||
|
IN PCHAR FormatString OPTIONAL,
|
|||
|
...
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnSetCopyStatusText(
|
|||
|
IN PCHAR Caption,
|
|||
|
IN PCHAR Filename
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnStartEditField(
|
|||
|
IN BOOLEAN CreateField,
|
|||
|
IN UCHAR X,
|
|||
|
IN UCHAR Y,
|
|||
|
IN UCHAR W
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnExitDialog(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnDelnode(
|
|||
|
IN PCHAR Directory
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// Gas guage functions
|
|||
|
//
|
|||
|
int
|
|||
|
DnGetGaugeChar(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnInitGauge(
|
|||
|
IN unsigned NumberOfFiles,
|
|||
|
IN PSCREEN AdditionalScreen OPTIONAL
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnTickGauge(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnDrawGauge(
|
|||
|
IN PSCREEN AdditionalScreen OPTIONAL
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// asm routines in dna.asm
|
|||
|
//
|
|||
|
VOID
|
|||
|
DnaReboot(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
_far
|
|||
|
_cdecl
|
|||
|
DnAbsoluteSectorIo(
|
|||
|
IN unsigned Drive, //0=A, etc
|
|||
|
IN ULONG StartSector,
|
|||
|
IN USHORT SectorCount,
|
|||
|
IN OUT PVOID Buffer,
|
|||
|
IN BOOLEAN Write
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// Misc / util functions
|
|||
|
//
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
DnWriteSmallIniFile(
|
|||
|
IN PCHAR Filename,
|
|||
|
IN PCHAR *Lines,
|
|||
|
OUT FILE **FileHandle OPTIONAL
|
|||
|
);
|
|||
|
|
|||
|
ULONG
|
|||
|
DnGetKey(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
ULONG
|
|||
|
DnGetValidKey(
|
|||
|
IN PULONG ValidKeyList
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnDisplayScreen(
|
|||
|
IN PSCREEN Screen,
|
|||
|
...
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
vDnDisplayScreen(
|
|||
|
IN PSCREEN Screen,
|
|||
|
IN va_list arglist
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnFatalError(
|
|||
|
IN PSCREEN Screen,
|
|||
|
...
|
|||
|
);
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
DnCopyError(
|
|||
|
IN PCHAR Filename,
|
|||
|
IN PSCREEN ErrorScreen,
|
|||
|
IN int FilenameLine
|
|||
|
);
|
|||
|
|
|||
|
PCHAR
|
|||
|
DnDupString(
|
|||
|
IN PCHAR String
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnGetString(
|
|||
|
IN OUT PCHAR String,
|
|||
|
IN UCHAR X,
|
|||
|
IN UCHAR Y,
|
|||
|
IN UCHAR W
|
|||
|
);
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
DnIsDriveValid(
|
|||
|
IN unsigned Drive
|
|||
|
);
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
DnIsDriveRemote(
|
|||
|
IN unsigned Drive,
|
|||
|
OUT PCHAR UncPath OPTIONAL
|
|||
|
);
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
DnIsDriveRemovable(
|
|||
|
IN unsigned Drive
|
|||
|
);
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
DnCanonicalizePath(
|
|||
|
IN PCHAR PathIn,
|
|||
|
OUT PCHAR PathOut
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnRemoveTrailingSlashes(
|
|||
|
PCHAR Path
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnRemoveLastPathElement(
|
|||
|
PCHAR Path
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnpConcatPaths(
|
|||
|
IN PCHAR SourceBuffer,
|
|||
|
IN PCHAR AppendString
|
|||
|
);
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
DnIsDriveCompressedVolume(
|
|||
|
IN unsigned Drive,
|
|||
|
OUT unsigned *HostDrive
|
|||
|
);
|
|||
|
|
|||
|
#if 1
|
|||
|
PVOID
|
|||
|
Malloc(
|
|||
|
IN unsigned Size,
|
|||
|
IN BOOLEAN MustSucceed
|
|||
|
#if DBG
|
|||
|
,IN char *file,
|
|||
|
IN int line
|
|||
|
#endif
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
Free(
|
|||
|
IN PVOID Block
|
|||
|
#if DBG
|
|||
|
,IN char *file,
|
|||
|
IN int line
|
|||
|
#endif
|
|||
|
);
|
|||
|
|
|||
|
PVOID
|
|||
|
Realloc(
|
|||
|
IN PVOID Block,
|
|||
|
IN unsigned Size,
|
|||
|
IN BOOLEAN MustSucceed
|
|||
|
#if DBG
|
|||
|
,IN char *file,
|
|||
|
IN int line
|
|||
|
#endif
|
|||
|
);
|
|||
|
|
|||
|
#if DBG
|
|||
|
#define MALLOC(s,f) Malloc(s,f,__FILE__,__LINE__)
|
|||
|
#define REALLOC(b,s,f) Realloc(b,s,f,__FILE__,__LINE__)
|
|||
|
#define FREE(b) Free(b,__FILE__,__LINE__)
|
|||
|
#else
|
|||
|
#define MALLOC(s,f) Malloc(s,f)
|
|||
|
#define REALLOC(b,s,f) Realloc(b,s,f)
|
|||
|
#define FREE(b) Free(b)
|
|||
|
#endif
|
|||
|
|
|||
|
#else
|
|||
|
|
|||
|
#include <malloc.h>
|
|||
|
#define MALLOC(s,f) malloc(s)
|
|||
|
#define REALLOC(b,s,f) realloc(b,s)
|
|||
|
#define FREE(b) free(b)
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
VOID
|
|||
|
DnExit(
|
|||
|
IN int ExitStatus
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// File copy routines
|
|||
|
//
|
|||
|
//
|
|||
|
// Flags for various routines
|
|||
|
//
|
|||
|
#define CPY_VALIDATION_PASS 0x0001
|
|||
|
#define CPY_USE_DEST_ROOT 0x0002
|
|||
|
#define CPY_VERIFY 0x0004
|
|||
|
#define CPY_PRESERVE_ATTRIBS 0x0008
|
|||
|
#define CPY_PRESERVE_NAME 0x0010
|
|||
|
#define CPY_PRUNE_DRIVERCAB 0x0020
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
DnCopyFiles(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
ULONG
|
|||
|
DnpIterateOptionalDirs(
|
|||
|
IN unsigned Flags,
|
|||
|
IN unsigned ClusterSize OPTIONAL,
|
|||
|
IN PSPACE_REQUIREMENT SpaceReqArray OPTIONAL,
|
|||
|
IN unsigned ArraySize OPTIONAL
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnCopyFloppyFiles(
|
|||
|
IN PCHAR SectionName,
|
|||
|
IN PCHAR TargetRoot
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnCopyFilesInSection(
|
|||
|
IN unsigned Flags,
|
|||
|
IN PCHAR SectionName,
|
|||
|
IN PCHAR SourcePath,
|
|||
|
IN PCHAR TargetPath
|
|||
|
);
|
|||
|
|
|||
|
#if NEC_98
|
|||
|
VOID
|
|||
|
DnCopyFilesInSectionForFDless(
|
|||
|
IN PCHAR SectionName,
|
|||
|
IN PCHAR SourcePath,
|
|||
|
IN PCHAR TargetPath
|
|||
|
);
|
|||
|
#endif // NEC_98
|
|||
|
|
|||
|
VOID
|
|||
|
DnCopyOemBootFiles(
|
|||
|
PCHAR TargetPath
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnDetermineSpaceRequirements(
|
|||
|
PSPACE_REQUIREMENT SpaceReqArray,
|
|||
|
unsigned ArraySize
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnAdjustSpaceRequirements(
|
|||
|
PSPACE_REQUIREMENT SpaceReqArray,
|
|||
|
unsigned ArraySize
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// Local source functions.
|
|||
|
//
|
|||
|
VOID
|
|||
|
DnRemoveLocalSourceTrees(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
DnRemovePagingFiles(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// Function to create the setup boot floppy
|
|||
|
//
|
|||
|
|
|||
|
VOID
|
|||
|
DnCreateBootFloppies(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// Function to start NT text mode setup
|
|||
|
//
|
|||
|
|
|||
|
VOID
|
|||
|
DnToNtSetup(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// Global variables
|
|||
|
//
|
|||
|
extern PCHAR LocalSourceDirName; // name of local src root (\$WIN_NT$.~LS)
|
|||
|
extern PCHAR x86DirName; // name of x86-specific subdir (\I386")
|
|||
|
extern PCHAR DngSourceRootPath; // root of source ('x:\foo\bar', '\\foo\bar')
|
|||
|
extern PCHAR UserSpecifiedOEMShare; // possible alternate location for $OEM$ files.
|
|||
|
extern CHAR DngTargetDriveLetter; // drive letter of target
|
|||
|
extern CHAR DngSwapDriveLetter; // drive letter for INF parser swap file
|
|||
|
extern PCHAR DngTargetPath; // path part of target from leading \.
|
|||
|
extern PVOID DngInfHandle; // To be passed to INF routines
|
|||
|
extern PVOID DngDrvindexInfHandle; // To be passed to INF routines
|
|||
|
extern BOOLEAN DngFloppyVerify; // whether to verify files copied to floppy
|
|||
|
extern BOOLEAN DngWinntFloppies; // whether floppies are for winnt or cd/floppy
|
|||
|
extern BOOLEAN DngCheckFloppySpace; // whether to check free space on the floppy
|
|||
|
extern unsigned DngOriginalCurrentDrive; // current drive when we were invoked
|
|||
|
extern BOOLEAN DngFloppyless; // whether to do floppyless operation
|
|||
|
extern BOOLEAN DngServer; // true if setting up server; false for workstation
|
|||
|
extern BOOLEAN DngUnattended; // skip final reboot screen
|
|||
|
extern BOOLEAN DngWindows; // Are we running under Windows?
|
|||
|
|
|||
|
extern BOOLEAN DngCopyOnlyD1TaggedFiles; // TRUE if the files tagged with d1 only need to be copied
|
|||
|
|
|||
|
extern PCHAR DngScriptFile;
|
|||
|
extern BOOLEAN DngOemPreInstall;
|
|||
|
extern PCHAR OemSystemDirectory;
|
|||
|
extern PCHAR OemOptionalDirectory;
|
|||
|
|
|||
|
extern PCHAR UniquenessDatabaseFile;
|
|||
|
extern PCHAR UniquenessId;
|
|||
|
|
|||
|
extern BOOLEAN DngMagnifier; // Accessibility utilities
|
|||
|
extern BOOLEAN DngKeyboard;
|
|||
|
extern BOOLEAN DngTalker;
|
|||
|
extern BOOLEAN DngVoice;
|
|||
|
|
|||
|
//
|
|||
|
// Name of sections and keys in inf file.
|
|||
|
//
|
|||
|
|
|||
|
extern CHAR __far DnfDirectories[];
|
|||
|
extern CHAR __far DnfFiles[];
|
|||
|
extern CHAR __far DnfFloppyFiles0[];
|
|||
|
extern CHAR __far DnfFloppyFiles1[];
|
|||
|
extern CHAR __far DnfFloppyFiles2[];
|
|||
|
extern CHAR __far DnfFloppyFiles3[];
|
|||
|
extern CHAR __far DnfFloppyFilesX[];
|
|||
|
extern CHAR __far DnfSpaceRequirements[];
|
|||
|
extern CHAR __far DnfMiscellaneous[];
|
|||
|
extern CHAR __far DnfRootBootFiles[];
|
|||
|
extern CHAR __far DnfAssemblyDirectories[];
|
|||
|
|
|||
|
#if NEC_98
|
|||
|
extern CHAR DnfBackupFiles_PC98[]; // For FD Less Setup
|
|||
|
#endif // NEC_98
|
|||
|
extern CHAR DnkBootDrive[];
|
|||
|
extern CHAR DnkNtDrive[];
|
|||
|
extern CHAR __far DnkMinimumMemory[];
|
|||
|
|
|||
|
//
|
|||
|
// Text strings
|
|||
|
//
|
|||
|
|
|||
|
extern CHAR __far DntMsWindows[]; // "Microsoft Windows"
|
|||
|
extern CHAR __far DntMsDos[]; // "MS-DOS"
|
|||
|
extern CHAR __far DntPcDos[]; // "PC-DOS"
|
|||
|
extern CHAR __far DntOs2[]; // "OS/2"
|
|||
|
extern CHAR __far DntPreviousOs[]; // "Previous Operating System on C:"
|
|||
|
extern CHAR __far DntBootIniLine[]; // "Windows NT 3.5 Installation/Upgrade"
|
|||
|
extern CHAR __far DntEmptyString[]; // ""
|
|||
|
extern CHAR __far DntStandardHeader[];
|
|||
|
extern CHAR __far DntPersonalHeader[];
|
|||
|
extern CHAR __far DntServerHeader[];
|
|||
|
extern CHAR __far DntWorkstationHeader[];
|
|||
|
extern CHAR DntParsingArgs[]; // "Parsing arguments..."
|
|||
|
extern CHAR __far DntEnterEqualsExit[];
|
|||
|
extern CHAR __far DntEnterEqualsRetry[];
|
|||
|
extern CHAR __far DntEscEqualsSkipFile[];
|
|||
|
extern CHAR __far DntEnterEqualsContinue[];
|
|||
|
extern CHAR __far DntPressEnterToExit[];
|
|||
|
extern CHAR __far DntF3EqualsExit[]; // "F3=Exit"
|
|||
|
extern CHAR __far DntReadingInf[]; // "Reading INF file..."
|
|||
|
extern CHAR __far DntCopying[]; // "<22> Copying: "
|
|||
|
extern CHAR __far DntVerifying[]; // "<22> Verifying: "
|
|||
|
extern CHAR DntCheckingDiskSpace[]; // "Checking disk space..."
|
|||
|
extern CHAR __far DntConfiguringFloppy[]; // "Configuring floppy disk..."
|
|||
|
extern CHAR __far DntWritingData[]; // "Writing Setup parameters...";
|
|||
|
extern CHAR __far DntPreparingData[]; // "Determining Setup parameters...";
|
|||
|
extern CHAR __far DntFlushingData[]; // "Ensuring disk consistency..."
|
|||
|
extern CHAR __far DntInspectingComputer[]; // "Inspecting computer..."
|
|||
|
extern CHAR __far DntOpeningInfFile[]; // "Opening INF file..."
|
|||
|
extern CHAR __far DntRemovingFile[]; // "Removing file %s"
|
|||
|
extern CHAR DntXEqualsRemoveFiles[]; // "X=Remove files"
|
|||
|
extern CHAR __far DntXEqualsSkipFile[]; // "X=Skip File"
|
|||
|
|
|||
|
extern ULONG DniAccelRemove1,DniAccelRemove2;
|
|||
|
extern ULONG DniAccelSkip1,DniAccelSkip2;
|
|||
|
|
|||
|
extern PCHAR __far DntUsage[];
|
|||
|
extern PCHAR __far DntUsageNoSlashD[];
|
|||
|
|
|||
|
//
|
|||
|
// Screens
|
|||
|
//
|
|||
|
|
|||
|
extern SCREEN DnsOutOfMemory;
|
|||
|
extern SCREEN DnsAccessibilityOptions; // choose accessibility utilities
|
|||
|
extern SCREEN DnsNoShareGiven; // user did not give a sharepoint
|
|||
|
extern SCREEN DnsBadSource; // user specified a bad source
|
|||
|
extern SCREEN DnsBadInf; // inf file is bad or couldn't read it
|
|||
|
extern SCREEN DnsBadLocalSrcDrive; // local source drive on cmd line is bad
|
|||
|
extern SCREEN DnsNoLocalSrcDrives; // no drives suitable for local source
|
|||
|
extern SCREEN DnsNoSpaceOnSyspart; // not enough space for floppyless operation
|
|||
|
extern SCREEN DnsCantCreateDir; // couldn't create directory.
|
|||
|
extern SCREEN DnsBadInfSection; // inf section is bad
|
|||
|
extern SCREEN DnsCopyError; // error copying a file
|
|||
|
extern SCREEN DnsVerifyError; // copy of file didn't match original
|
|||
|
extern SCREEN DnsWaitCopying; // wait while setup copies files...
|
|||
|
extern SCREEN DnsWaitCopyFlop; // wait while setup copies files...
|
|||
|
extern SCREEN DnsWaitCleanup; // wait while setup cleans up...
|
|||
|
extern SCREEN DnsNeedFloppyDisk0_0; // prompt user to insert a blank floppy
|
|||
|
extern SCREEN DnsNeedSFloppyDsk0_0; // prompt user to insert a blank floppy
|
|||
|
extern SCREEN DnsNeedFloppyDisk1_0; // prompt user to insert a blank floppy
|
|||
|
extern SCREEN DnsNeedFloppyDisk2_0; // prompt user to insert a blank floppy
|
|||
|
extern SCREEN DnsNeedFloppyDisk3_0; // prompt user to insert a blank floppy
|
|||
|
extern SCREEN DnsNeedFloppyDisk3_1; // prompt user to insert a blank floppy
|
|||
|
extern SCREEN DnsNeedSFloppyDsk1_0; // prompt user to insert a blank floppy
|
|||
|
extern SCREEN DnsNeedSFloppyDsk2_0; // prompt user to insert a blank floppy
|
|||
|
extern SCREEN DnsNeedSFloppyDsk3_0; // prompt user to insert a blank floppy
|
|||
|
extern SCREEN DnsNeedSFloppyDsk3_1; // prompt user to insert a blank floppy
|
|||
|
extern SCREEN DnsFloppyNotFormatted;// floppy appears to not be formatted
|
|||
|
extern SCREEN DnsFloppyCantGetSpace;// can't determine free space on the floppy
|
|||
|
extern SCREEN DnsFloppyNotBlank; // not enough free space on the floppy
|
|||
|
extern SCREEN DnsFloppyWriteBS; // couldn't write floppy's boot sector
|
|||
|
extern SCREEN DnsFloppyVerifyBS; // readback of sector 0 failed or no match
|
|||
|
extern SCREEN DnsFloppyBadFormat; // sanity check of bpb failed
|
|||
|
extern SCREEN DnsCantWriteFloppy; // couldn't append to txtsetup.inf
|
|||
|
extern SCREEN DnsExitDialog; // exit confirmation
|
|||
|
extern SCREEN DnsAboutToRebootS; // about to reboot machine (server)
|
|||
|
extern SCREEN DnsAboutToRebootW; // about to reboot machine (workstation)
|
|||
|
extern SCREEN DnsAboutToRebootX; // about to reboot machine (floppyless)
|
|||
|
extern SCREEN DnsAboutToExitS; // about to exit winnt (server)
|
|||
|
extern SCREEN DnsAboutToExitW; // about to exit winnt (workstation)
|
|||
|
extern SCREEN DnsAboutToExitX; // about to exit winnt (floppyless)
|
|||
|
|
|||
|
extern SCREEN DnsConfirmRemoveNt; // confirm remove nt files
|
|||
|
extern SCREEN DnsCantOpenLogFile; // Can't open setup.log
|
|||
|
extern SCREEN DnsLogFileCorrupt; // Log file missing [Repair.WinntFiles]
|
|||
|
extern SCREEN DnsRemovingNtFiles; // removing windows nt files.
|
|||
|
extern SCREEN DnsSureSkipFile; // confirm skip file on copy error.
|
|||
|
|
|||
|
extern SCREEN DnsGauge; // gas gauge
|
|||
|
extern SCREEN DnsBadDosVersion; // DOS version < 3.0
|
|||
|
extern SCREEN DnsRequiresFloppy; // no 1.2 meg or greater floppy at a:
|
|||
|
extern SCREEN DnsRequires486; // not 80486 or greater
|
|||
|
extern SCREEN DnsNotEnoughMemory; // insufficient memory
|
|||
|
extern SCREEN DnsCantRunOnNt; // can't run on windows nt
|
|||
|
|
|||
|
extern SCREEN DnsNtBootSect; // error installing NT Boot sector, etc.
|
|||
|
extern SCREEN DnsOpenReadScript; // can't open/read script file.
|
|||
|
|
|||
|
extern SCREEN DnsParseScriptFile; // can't parse unattended script file
|
|||
|
extern SCREEN DnsBootMsgsTooLarge;
|
|||
|
extern SCREEN DnsNoSwapDrive; // can't find a drive for INF swap file
|
|||
|
extern SCREEN DnsNoSmartdrv; // SMARTDRV is not installed
|
|||
|
|
|||
|
#if NEC_98
|
|||
|
extern SCREEN FormatError; // 256 Sector Error for FDLess Setup.
|
|||
|
#endif //NEC_98
|
|||
|
|
|||
|
//
|
|||
|
// Boot code messages. These go in the fat and fat32 boot sectors.
|
|||
|
//
|
|||
|
extern CHAR __far BootMsgNtldrIsMissing[];
|
|||
|
extern CHAR __far BootMsgDiskError[];
|
|||
|
extern CHAR __far BootMsgPressKey[];
|
|||
|
|
|||
|
#if NEC_98
|
|||
|
#else
|
|||
|
BOOLEAN
|
|||
|
PatchMessagesIntoBootCode(
|
|||
|
VOID
|
|||
|
);
|
|||
|
#endif
|
|||
|
|
|||
|
//
|
|||
|
// Line number within the DnsReadBootcodeFile message where we will
|
|||
|
// print the filename.
|
|||
|
//
|
|||
|
|
|||
|
#define BOOTCODE_FILENAME_LINE 2
|
|||
|
|
|||
|
//
|
|||
|
// coords for edit field for entering source path when none was
|
|||
|
// specified on cmd line. Keep in sync with DnsNoShareGiven.
|
|||
|
//
|
|||
|
|
|||
|
#define NO_SHARE_X 8
|
|||
|
#define NO_SHARE_Y 8
|
|||
|
#define NO_SHARE_W 64
|
|||
|
|
|||
|
#define BAD_SHARE_Y 10 // sync with DnsBadSource
|
|||
|
|
|||
|
//
|
|||
|
// Keep this in sync with DnsBadInfSection
|
|||
|
//
|
|||
|
|
|||
|
#define BAD_SECTION_LINE 0
|
|||
|
|
|||
|
//
|
|||
|
// Keep these in sync with DnsGauge
|
|||
|
//
|
|||
|
|
|||
|
#define GAUGE_WIDTH 50
|
|||
|
#define GAUGE_THERM_X 15
|
|||
|
#define GAUGE_THERM_Y 19
|
|||
|
#define GAUGE_PERCENT_X 39
|
|||
|
#define GAUGE_PERCENT_Y 17
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Keep in sync with DntTimeUntilShutdown, DnsAboutToReboot
|
|||
|
//
|
|||
|
|
|||
|
#define SHUTDOWNTIME_X 23
|
|||
|
#define SHUTDOWNTIME_Y 15
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Keep these in sync with DnsNotEnoughMemory
|
|||
|
//
|
|||
|
|
|||
|
#define NOMEM_LINE1 3
|
|||
|
#define NOMEM_LINE2 4
|
|||
|
|
|||
|
//
|
|||
|
// Keep in syns with DnsCopyError, DnsVerifyError
|
|||
|
//
|
|||
|
|
|||
|
#define COPYERR_LINE 2
|
|||
|
#define VERIFYERR_LINE 4
|
|||
|
|
|||
|
//
|
|||
|
// The max number of optional directories that can be
|
|||
|
// specified
|
|||
|
//
|
|||
|
|
|||
|
#define MAX_OPTIONALDIRS 1024
|
|||
|
#define MAX_OEMBOOTFILES 1024
|
|||
|
#define OPTDIR_TEMPONLY 0x00000001
|
|||
|
#define OPTDIR_OEMSYS 0x00000002
|
|||
|
#define OPTDIR_OEMOPT 0x00000004
|
|||
|
#define OPTDIR_PLATFORM_INDEP 0x00000008
|
|||
|
extern unsigned OptionalDirCount; // The number of Optional Directories
|
|||
|
extern CHAR *OptionalDirs[MAX_OPTIONALDIRS]; // Pointer to Dir strings
|
|||
|
extern unsigned OptionalDirFlags[MAX_OPTIONALDIRS]; // Flags for each Dir
|
|||
|
extern unsigned OptionalDirFileCount; // How many files in optional dirs?
|
|||
|
extern unsigned OemBootFilesCount; // The number of OEM boot files
|
|||
|
extern CHAR *OemBootFiles[MAX_OEMBOOTFILES]; // Pointer to OEM boot filenames
|
|||
|
extern PCHAR CmdToExecuteAtEndOfGui;
|
|||
|
|
|||
|
// slight overestimate, actually 66, but does that include terminal nul?
|
|||
|
// 128 is a popular number in the source
|
|||
|
#define DOS_MAX_PATH 70
|
|||
|
|
|||
|
//
|
|||
|
// Logging stuff
|
|||
|
//
|
|||
|
#define LOGGING
|
|||
|
|
|||
|
#ifdef LOGGING
|
|||
|
VOID
|
|||
|
__LOG(
|
|||
|
IN PCHAR FormatString,
|
|||
|
...
|
|||
|
);
|
|||
|
|
|||
|
#define _LOG(x) __LOG x
|
|||
|
#else
|
|||
|
#define _LOG(x)
|
|||
|
#endif // def LOGGING
|
|||
|
|
|||
|
extern SPACE_REQUIREMENT __far SpaceRequirements[];
|
|||
|
|
|||
|
int snprintf( char* target, size_t bufsize, const char *format, ... );
|
|||
|
int vsnprintf( char* target, size_t bufsize, const char *format, va_list val );
|