📄 _msd.h
字号:
/*********************************************************************
* Microsoft Diagnostics Version 2.0
*
* A diagnostic utility to detect as much useful information about a
* customer's computer system as is possible.
*
* Microsoft Diagnostics: We detect the World.
*
* _MSD.H - Header file for use within MSD.C
*
* Note: _MSD.H and MSD.H are interdependent.
********************************************************************/
#ifdef CW_INCLUDED
/* Comment this line out when we're sure the 'C' startup */
/* code will not jump to space. */
float flTemp = (float) 0.0;
#include "SRMENU.H"
#include "dialogs.adm"
#endif /* CW_INCLUDED */
/* Global Variables */
BOOL fCwIsReady = FALSE; /* TRUE when CW is initialized */
BOOL fBlackWhite = FALSE; /* TRUE for black and white operation */
BOOL fFastStart = FALSE; /* TRUE for no initial detection */
BOOL fReportFlag = FALSE; /* TRUE if a report is underway */
BOOL fReportOnly = FALSE; /* TRUE if "/F filename" was used, or if */
/* CW_INCLUDED is not defined */
BOOL fSummaryOnly = FALSE; /* TRUE if MSD is to report summary */
/* information only to a file */
BOOL fCriticalError = FALSE; /* Critical Error Flag */
BOOL fWindowsRunning = FALSE; /* TRUE if windows is running */
WORD wDosMajor; /* Stores the DOS version */
WORD wDosMinor;
#ifdef CW_INCLUDED
BYTE fAdjustMsgBox = FALSE;
PWND pwndSummaryFrame = NULL;
PWND pwndMainFrame = NULL;
PWND pwndStatusLine = NULL;
/* For subclassing MessageBox types */
PLFN_WNDPROC OldMsgBoxProc;
LONG FAR MyMsgBoxProc (REGISTER PWND_DLG, WORD, WORD, DWORD);
/* For subclassing Edit Item types */
PLFN_WNDPROC OldEditItemProc;
LONG FAR MyEditItemProc (REGISTER PWND_EDIT, WORD, WORD, DWORD);
HMNU hmnuMenuBar = (HMNU) &pmenuBlade;
ISA_PAIR aisapColor[isaMax] =
{
{ 7, 8 }, /* 0 = isaBackground */
{ 15, 0 }, /* 1 = isaHilite */
{ 8, 15 }, /* 2 = isaGreyed */
{ 0, 15 }, /* 3 = isaEnabled */
{ 8, 15 }, /* 4 = isaDisabled */
{ 0, 15 }, /* 5 = isaAlert */
{ 0, 15 }, /* 6 = isaDialogBox, isaStatic, isaButton, isaEdit */
{ 0, 7 }, /* 7 = isaPushButton */
{ 8, 7 }, /* 8 = isaButtonDown */
{ 0, 15 }, /* 9 = isaListBox */
{ 0, 15 }, /* 10 = isaScrollbar */
{ 7, 0 }, /* 11 = isaElevator */
{ 0, 15 }, /* 12 = isaMenuBox */
{ 0, 15 }, /* 13 = isaMenu */
{ 15, 0 }, /* 14 = isaMenuSelected */
{ 12, 15 }, /* 15 = isaMenuHilite */
{ 7, 0 }, /* 16 = isaMenuHiliteSel */
{ 12, 0 }, /* 17 = isaItemHiliteSel */
{ 12, 15 }, /* 18 = isaDialogAccel */
{ 12, 15 }, /* 19 = isaDialogAccelBor */
{ 8, 8 }, /* 20 = isaShadow */
{ 7, 0 }, /* 21 = isaDialogBar */
{ 7, 0 }, /* 22 = isaDialogTitle */
{ 0, 0 }, /* 23 = isa3DGroupBoxIn, isa3DGroupBoxUL */
{ 15, 7 }, /* 24 = isa3DGroupBoxOut, isa3DGroupBoxBR */
{ 0, 7 }, /* 25 = isa3DListboxIn, isa3DListboxUL */
{ 15, 7 }, /* 26 = isa3DListboxOut, isa3DListboxBR */
{ 15, 7 }, /* 27 = isa3DPushBtnIn, isa3DPushBtnUL */
{ 8, 7 }, /* 28 = isa3DPushBtnOut, isa3DPushBtnBR */
{ 14, 7 }, /* 29 = isaButtonAccel, isaSystemMax */
{ 15, 1 }, /* 30 = isaUserMin, isaSummaryBlank */
{ 15, 1 }, /* 31 = isaSummaryText */
{ 0, 15 }, /* 32 = isaInfoActive */
{ 0, 15 }, /* 33 = isaInfoActiveBorder */
{ 0, 8 }, /* 34 = isaInfoInactive */
{ 0, 7 }, /* 35 = isaStatusLine */
{ 7, 0 }, /* 36 = isaAlternate */
{ 14, 0 }, /* 37 = isaMemoryMap */
{ 7, 1 }, /* 38 = isaSummaryBtnShadow */
{ 7, 15 }, /* 39 = isaMessageBtn1 */
{ 4, 7 }, /* 40 = isa3DBtnHilite */
{ 7, 0 }, /* 41 = */
{ 7, 0 }, /* 42 = */
{ 7, 0 }, /* 43 = */
{ 7, 0 }, /* 44 = */
{ 7, 0 } /* 45 = isaMax, isaUserMax, isaTemp */
};
ISA_PAIR aisapBlackAndWhite[isaMax] =
{
{ 7, 0 }, /* 0 = isaBackground */
{ 7, 0 }, /* 1 = isaHilite */
{ 7, 0 }, /* 2 = isaGreyed */
{ 0, 7 }, /* 3 = isaEnabled */
{ 0, 7 }, /* 4 = isaDisabled */
{ 0, 7 }, /* 5 = isaAlert */
{ 0, 7 }, /* 6 = isaDialogBox, isaStatic, isaButton, isaEdit */
{ 0, 7 }, /* 7 = isaPushButton */
{ 7, 0 }, /* 8 = isaButtonDown */
{ 0, 7 }, /* 9 = isaListBox */
{ 0, 7 }, /* 10 = isaScrollbar */
{ 7, 0 }, /* 11 = isaElevator */
{ 0, 7 }, /* 12 = isaMenuBox */
{ 0, 7 }, /* 13 = isaMenu */
{ 7, 0 }, /* 14 = isaMenuSelected */
{ 7, 0 }, /* 15 = isaMenuHilite */
{ 7, 0 }, /* 16 = isaMenuHiliteSel */
{ 7, 0 }, /* 17 = isaItemHiliteSel */
{ 7, 0 }, /* 18 = isaDialogAccel */
{ 7, 0 }, /* 19 = isaDialogAccelBor */
{ 0, 0 }, /* 20 = isaShadow */
{ 7, 0 }, /* 21 = isaDialogBar */
{ 7, 0 }, /* 22 = isaDialogTitle */
{ 0, 0 }, /* 23 = isa3DGroupBoxIn, isa3DGroupBoxUL */
{ 0, 7 }, /* 24 = isa3DGroupBoxOut, isa3DGroupBoxBR */
{ 0, 7 }, /* 25 = isa3DListboxIn, isa3DListboxUL */
{ 0, 7 }, /* 26 = isa3DListboxOut, isa3DListboxBR */
{ 0, 7 }, /* 27 = isa3DPushBtnIn, isa3DPushBtnUL */
{ 0, 7 }, /* 28 = isa3DPushBtnOut, isa3DPushBtnBR */
{ 0, 7 }, /* 29 = isaButtonAccel, isaSystemMax */
{ 7, 0 }, /* 30 = isaUserMin, isaSummaryBlank */
{ 7, 0 }, /* 31 = isaSummaryText */
{ 0, 7 }, /* 32 = isaInfoActive */
{ 0, 7 }, /* 33 = isaInfoActiveBorder */
{ 0, 7 }, /* 34 = isaInfoInactive */
{ 0, 7 }, /* 35 = isaStatusLine */
{ 7, 0 }, /* 36 = isaAlternate */
{ 7, 0 }, /* 37 = isaMemoryMap */
{ 7, 0 }, /* 38 = isaSummaryBtnShadow */
{ 7, 0 }, /* 39 = */
{ 7, 0 }, /* 40 = */
{ 7, 0 }, /* 41 = */
{ 7, 0 }, /* 42 = */
{ 7, 0 }, /* 43 = */
{ 7, 0 }, /* 44 = */
{ 7, 0 } /* 45 = isaMax, isaUserMax, isaTemp */
};
#endif /* CW_INCLUDED */
/* Variables for reporting */
WORD wLineCount; /* Current line number */
WORD wPageCount; /* Current page number */
WORD wColumnCount = 0; /* Current column number */
WORD wReportIndent = 40 - (REPORT_WIDTH / 2); /* Left indent for reports */
PSZ pszReportFilename = NULL; /* Pointer to report filename */
/* Global Strings */
PSZ paszReportTo[] = /* Filenames to report to */
{
"LPT1",
"LPT2",
"LPT3",
"COM1",
"COM2",
"COM3",
"COM4",
NULL
};
WORD wReportToIndex = 0; /* Index to paszReportTo */
FILE_INFO FAR *pfiDlg; /* File Info for dialog processing */
TEST_PRINTER tpValue; /* Printer test info structure */
QSZ * pqszBrowseStrings = NULL; /* Browsed strings are returned here */
PSZ pszBrowseTitle = NULL; /* Title for browsed strings */
#define MSD_VERSION_NUMBER "2.01"
PSZ pszVersionNumber = MSD_VERSION_NUMBER;
PSZ pszNull = "";
PSZ pszYes = "Yes";
PSZ pszNo = "No";
PSZ pszNo_ = "No ";
PSZ pszNone = "None";
PSZ pszUnknown = "Unknown";
PSZ pszInsufMemory = "Insufficient Memory";
PSZ pszErrorOpening = "Error opening";
PSZ pszErrorClosing = "Error Closing File";
PSZ pszErrorWriting = "Error Writing";
PSZ pszErrorReading = "Error Reading";
PSZ pszCon = "CON";
PSZ pszHeaderFormatString = " Microsoft Diagnostics version %s %2d/%02d/%02d %2d:%02d%s Page%3d";
PSZ pszPostscriptTest1 = "initgraphics\r\n"
"/Times-Roman findfont 18 scalefont setfont\r\n"
"100 700 moveto\r\n"
"(Microsoft Corporation ) show\r\n"
"100 680 moveto\r\n"
"(Postscript Printer Connection and Processor Test) show\r\n"
"100 660 moveto\r\n"
"(Postscript version: )show 8 0 rmoveto version show\r\n";
PSZ pszPostscriptTest2 = "100 640 moveto\r\n"
"(Date: %d/%02d/%d Time: %d:%02d %s) show\r\n";
PSZ pszPostscriptTest3 = "/Times-Roman findfont 12 scalefont setfont\r\n";
PSZ pszOutput = "w"; /* Used for OpenFile/fopen */
BOOL rgfReportItemFlag[] =
{
FALSE, /* IDI_ALL_RECORDS */
FALSE, /* IDI_MSD_HEADER_RECORD */
TRUE, /* IDI_CUSTOMER_INFORMATION */
TRUE, /* IDI_SUMMARY_SCREEN */
TRUE, /* IDI_COMPUTER_RECORD */
TRUE, /* IDI_MEMORY_RECORD */
TRUE, /* IDI_VIDEO_RECORD */
TRUE, /* IDI_NETWORK_RECORD */
TRUE, /* IDI_OS_VERSION_RECORD */
TRUE, /* IDI_MOUSE_RECORD */
TRUE, /* IDI_OTHER_ADAPTERS_RECORD */
TRUE, /* IDI_DISK_DRIVE_RECORD */
TRUE, /* IDI_LPT_RECORD */
TRUE, /* IDI_COM_RECORD */
TRUE, /* IDI_IRQ_RECORD */
TRUE, /* IDI_TSR_PROGRAMS_RECORD */
TRUE, /* IDI_DEVICE_DRIVERS_RECORD */
TRUE, /* Memory Browser */
TRUE, /* AUTOEXEC.BAT */
TRUE, /* CONFIG.SYS */
TRUE, /* WIN.INI */
TRUE, /* SYSTEM.INI */
TRUE, /* MSMAIL.INI */
TRUE, /* PROTOCOL.INI */
TRUE, /* DBLSPACE.INI */
TRUE /* MEMMAKER.STS */
};
PSZ paszDefaultMsdIni[] =
{
"FILES=40, , CONFIG.SYS",
"BUFFERS=20, , CONFIG.SYS",
"SET TEMP=C:\\WINDOWS\\TEMP, , AUTOEXEC.BAT",
NULL
};
char * rgszSystemFiles[] =
{
"AUTOEXEC.BAT",
"CONFIG.SYS",
"SYSTEM.INI",
"WIN.INI",
"MSMAIL.INI",
"PROTOCOL.INI",
"DBLSPACE.INI",
"MEMMAKER.STS",
NULL
};
WORD iszMax2 = sizeof (rgszSystemFiles) / sizeof (PSZ);
WORD rgwSystemFiles[] =
{
SEARCH_BOOT_DRIVE,
SEARCH_BOOT_DRIVE,
SEARCH_WINDIR,
SEARCH_WINDIR,
SEARCH_WINDIR,
SEARCH_LANMAN_ROOT,
SEARCH_LOCAL_DRIVES|SEARCH_ROOT|RECURSE_INTO_SUB_DIRS,
SEARCH_LOCAL_DRIVES|SEARCH_ROOT|RECURSE_INTO_SUB_DIRS
};
PSZ pszInsertCommand = NULL;
PSZ pszInsertSection = NULL;
PSZ pszInsertFilename = NULL;
/* "Computer" strings */
PSZ paszComputerTitles[] =
{
"Computer Name: ",
"BIOS Manufacturer: ",
"BIOS Version: ",
"",
"",
"BIOS Category: ",
"BIOS ID Bytes: ",
"BIOS Date: ",
"Processor: ",
"Math Coprocessor: ",
"Keyboard: ",
"Bus Type: ",
"DMA Controller: ",
"Cascaded IRQ2: ",
"BIOS Data Segment: ",
NULL
};
PSZ pszEnhanced = "Enhanced";
PSZ pszNonEnhanced = "Non-Enhanced";
PSZ pszXtBus = "ISA/XT/Classic Bus";
PSZ pszAtBus = "ISA/AT/Classic Bus";
PSZ pszMicroChannel = "Micro Channel";
PSZ pszEisaBus = "EISA";
PSZ pszIntel8088 = "8088 or 8086";
PSZ pszIntel80188 = "80188";
PSZ pszIntel80186 = "80186";
PSZ pszIntel80286 = "80286";
PSZ pszIntel80386 = "80386";
PSZ pszNECV20 = "NECV20 or NECV30";
PSZ pszIntel8087 = "8087";
PSZ pszIntel80287 = "80287";
PSZ pszIntel80387 = "80387";
PSZ pszInternal = "Internal";
PSZ pszInteli486 = "486DX";
PSZ pszIntel486SX = "486SX";
/* Memory strings */
PSZ paszMemoryTitles[] =
{
"Conventional Memory",
"Total: ",
"Available: ",
"Extended Memory",
"Total: ",
"MS-DOS Upper Memory Blocks",
"Total UMBs: ",
"Total Free UMBs: ",
"Largest Free Block: ",
"Expanded Memory (EMS)",
"LIM Version: ",
"Page Frame Address: ",
"Total: ",
"Available: ",
"XMS Information",
"XMS Version: ",
"Driver Version: ",
"A20 Address Line: ",
"High Memory Area: ",
"Available: ",
"Largest Free Block: ",
"Available SXMS: ",
"Largest Free SXMS: ",
"Total Free XMS UMB: ",
"Largest Free XMS UMB: ",
"VCPI Information",
"VCPI Detected: ",
"Version: ",
"Available Memory: ",
"DPMI Information",
"DPMI Detected: ",
"Version: ",
};
PSZ pszNoPageFrame = "No Page Frame";
PSZ pszEnabled = "Enabled";
PSZ pszNotEnabled = "Not Enabled";
PSZ pszError = "Error";
/* Video strings */
PSZ paszVideoTitles[] =
{
"Video Adapter Type: ",
"Manufacturer: ",
"Model: ",
"Display Type: ",
"Video Mode: ",
"Number of Columns: ",
"Number of Rows: ",
"Video BIOS Version: ",
"",
"",
"Video BIOS Date: ",
"VESA Support Installed: ",
"VESA Version: ",
"VESA OEM Name: ",
"Secondary Adapter: ",
"TIGA Version: ",
"TIGA Interrupt/Address: ",
NULL
};
/* Network Types */
PSZ paszNetworkTypes[] =
{
"No Network",
"Unknown Network",
"MS-NET Compatible",
"LANMAN",
"LANMAN Basic",
"LANMAN Enhanced",
"Novell",
"Banyan",
"LANtastic",
"PC-NFS",
"MS Workgroup Client",
NULL
};
PSZ paszNetworkTitles[] =
{
/* Generic network strings */
"Network Detected: ",
"Network Name: ",
"Network Version: ",
"MS-DOS Network Functions: ",
"Computer Name: ",
"NetBIOS Present: ",
"NetBIOS INT 5C Address: ",
/* LANMAN strings */
"Network Root: ",
"User Name: ",
/* "Primary Domain: ", */
"Workgroup: ",
"Server Connection: ",
"Mailslot Support: ",
"API Support: ",
"LAN Manager Date: ",
"Current Patch Level: ",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -