📄 msd.h
字号:
unsigned char uchXmm_Driver_VersionMinor; /* Minor version of the XMM driver */
/* stored as a hex value */
int iA20Status; /* The status of the A20 address line, 1 = enabled, 0 = disabled */
int iHMAStatus; /* The status of the HMA. 1 = avaialble, 0 = not available */
int iXMSError; /* Error codes returned when requesting the HMA */
/* SXMS memory information (compliments XMS memory information) */
BOOL fSxmsAvailable; /* TRUE if Super Extended memory available */
DWORD dwSxmsLargestFree; /* Largest free block in Kb */
DWORD dwSxmsTotalFree; /* Total SXMS free in Kb */
DWORD dwSxmsHighestAddr; /* Highest ending address of any block */
/* XMS UMB information */
BOOL fXmsUmbAvailable; /* TRUE if XMS UMBs are available */
DWORD dwXmsUmbFree; /* Total bytes free in XMS UMBs */
DWORD dwXmsUmbLargestFree; /* Largest free block of XMS UMBs */
/* Error Code Meaning */
/* ---------- ------- */
/* 0 No errors detected */
/* 1 HMA request feature not implemented */
/* 2 VDISK was detected */
/* 3 HMA does not exist */
/* 4 HMA already in use */
/* 5 Unknown reason */
/* 6 Unable to release HMA (Used when releasing) */
/* VCPI Information */
int iVCPIPresent; /* Whether or not VCPI is present, 1 = Yes, 0 = No */
int iVCPIMajorVersion; /* Major version of VCPI driver */
int iVCPIMinorVersion; /* Minor version of VCPI driver */
int iVCPIAvailMemory; /* Available VCPI memory, Kbytes */
/*DPMI Information */
int iDPMIPresent; /* Whether or not DPMI is present, 1 = Yes, 0 = No */
int iDPMIMajorVersion; /* Major version of DPMI driver */
int iDPMIMinorVersion; /* Minor version of DPMI driver */
unsigned long ulRealModeDPMIMemAvail; /* The amount of real mode DPMI memory avaialable */
DPMI_STRUCT DPMIMemInfo; /* Structure for holding DPMI info */
WORD wOptionRomAddress[10];/* Option ROM Starting Addresses */
DWORD dwOptionRomLength[10];/* Option ROM lengths */
WORD wBiosStartAddress; /* System BIOS start address */
DWORD dwBiosLength; /* System BIOS length */
/* UMB Information */
BOOL fUmbsAvailable; /* TRUE if UMBs are available */
DWORD dwTotalUmbs; /* Total UMB areas in the system */
DWORD dwFreeUmbs; /* Total free UMB space */
DWORD dwLargestFreeUmb; /* Largest single free UMB area */
/* The arrays to hold the visual memory map */
BYTE abMemoryMap [NUM_OF_ROWS][NUM_OF_COLS];
BYTE abMemMapOverlay [NUM_OF_ROWS][NUM_OF_COLS];
} MEMORY_STRUCT;
typedef struct _ROM_MAP
{
/* ROM locations and lengths */
WORD wRomBiosLoc[2]; /* ROM BIOS locations */
DWORD dwRomBiosSize[2]; /* ROM BIOS sizes */
/* I've arbitrarily split PS/2 ROMs */
/* into E000 and F000 segments */
WORD wOptRomLoc[10]; /* Option ROM locations */
DWORD dwOptRomSize[10]; /* Option ROM sizes */
} ROM_MAP;
typedef struct _MEM_MAP
{
BYTE abMap[NUM_OF_ROWS][NUM_OF_COLS + 5];
} MEM_MAP;
/* Video structure */
#define MAX_ADAPTER 32
#define MAX_ADAPTER_NAME 32
#define MAX_ADAPTER_MODEL 32
#define MAX_DISPLAY_TYPE 32
#define MAX_VESA_OEM_NAME 50
typedef struct _VIDEO_STRUCT
{
/* Primary display information */
BYTE bSubsystem0; /* Video adapter type */
BYTE bDisplay0; /* Display type (TTL, color) */
BYTE bMode0; /* Video mode number */
BYTE bNmbrCols0; /* Number of columns (40/80) */
WORD wMemory0; /* Video memory installed */
/* Secondary display data */
BYTE bSubsystem1; /* Video adapter type */
BYTE bDisplay1; /* Display type (TTL, color) */
BYTE bMode1; /* Video mode number */
BYTE bNmbrCols1; /* Number of columns (40/80) */
WORD wMemory1; /* Video memory installed */
BYTE bNmbrRows; /* # of rows (25/43/50) */
CHAR szAdapterType[MAX_ADAPTER]; /* Adapter type (string) */
WORD wAdapterName; /* Adapter name (numeric) */
CHAR szAdapterName[MAX_ADAPTER_NAME]; /* Adapter name (string) */
WORD wAdapterModel; /* Adapter model (numeric) */
CHAR szAdapterModel[MAX_ADAPTER_MODEL]; /* Adapter model (string) */
CHAR szDisplayType[MAX_DISPLAY_TYPE]; /* Display type (string) */
CHAR sz2ndAdapterType[MAX_ADAPTER]; /* 2ndary adapter type (str) */
CHAR aszVideoBiosVersion[MAX_BIOS_VERSION_STRINGS][MAX_BIOS_VERSION_LEN];
CHAR szVideoBiosDate[MAX_BIOS_DATE]; /* Video BIOS date */
/* Video BIOS version */
BYTE bVesaVersionMajor; /* VESA version number (major) */
BYTE bVesaVersionMinor; /* VESA version number (minor) */
CHAR szVesaOemName[MAX_VESA_OEM_NAME]; /* VESA OEM Name */
WORD wTigaInterrupt; /* TIGA s/w interrupt number */
DWORD dwTigaIntAddress; /* TIGA interrupt address */
WORD wTigaMajor; /* TIGA major version number */
WORD wTigaMinor; /* TIGA minor version number */
BOOL fTigaSignatureFound; /* TRUE if "TIGA" found */
} VIDEO_STRUCT;
/* Network Structure */
#define MAX_MSNET_MACHINE_NAME 16 + 1
#define NUMBER_OF_CARDS 8
#define NUMBER_OF_SESSIONS 16
#define LENGTH_OF_UNIT_ID 6
typedef struct _SESSION_NAME
{
CHAR szSessionName[16];
} SESSION_NAME;
typedef struct _NET_CARD_SESSION
{
BYTE bUnitID_Number[LENGTH_OF_UNIT_ID];
BYTE bNumber_Of_Sessions;
SESSION_NAME snRemoteSessionNames[NUMBER_OF_SESSIONS];
} NET_CARD_SESSION;
typedef struct _NETWORK_STRUCT
{
/*** General Network Information *************************************/
BOOL fNetworkActive; /* TRUE if a network is active */
WORD wNetworkType; /* Type of network installed */
CHAR szNetworkType[MAX_NETWORK_TYPE]; /* Type of network (string) */
WORD wNetworkMajor; /* Version number of network */
WORD wNetworkMinor;
/*** MS-NET Information ***********************************************/
BOOL fMsnetCompatible; /* TRUE if MS-NET compatible network */
CHAR szMsnetMachineName[MAX_MSNET_MACHINE_NAME + 1]; /* Machine's name */
/*** NetBIOS Information **********************************************/
BOOL fNetBiosCompatible; /* TRUE if NetBIOS compatible network */
WORD wNetBIOSSegment; /* Segment address of NetBIOS handler */
WORD wNetBIOSOffset; /* Offset of NetBIOS handler */
/*** LANMAN Information ***********************************************/
BOOL fMailslot_Support; /* TRUE if supported */
BOOL fAPI_Support; /* TRUE if supported */
BOOL fServerConnection; /* TRUE if connection to a server has been established, 0 otherwise */
CHAR szLanRoot[_MAX_PATH];
CHAR szUserName[16];
CHAR szPrimaryDomain[16];
CHAR szLanManager_Date[16];
CHAR szLanManager_CSD[7];
WORD wNumberOfNets;
NET_CARD_SESSION ncsNets[NUMBER_OF_CARDS];
/*** Novell Information ***********************************************/
WORD wShellMajor; /* Version number of shell (numeric) */
WORD wShellMinor;
WORD wShellRevision;
CHAR szNovellShellOsVersion[40];/* Version number of shell OS (string) */
WORD wShellType; /* XMS, EMS, Conventional memory */
CHAR szNovellNetwareVersion[40];
WORD wNovellShellOs; /* 00=MS-DOS */
CHAR szNovellShellOs[40];
WORD wNovellHdwType; /* 00=IBM_PC 01=Victor9000 */
CHAR szNovellHdwType[40];
WORD wStationNmbr; /* Station number (digit) */
WORD wPhysicalStaNmbr1; /* Physical station number part 1 */
WORD wPhysicalStaNmbr2; /* Physical station number part 2 */
WORD wPhysicalStaNmbr3; /* Physical station number part 3 */
BOOL fIpxInstalled; /* TRUE if IPX installed */
BOOL fSpxInstalled; /* TRUE if SPX installed */
BOOL fOdiLslInstalled; /* TRUE if ODI link support layer in */
/*** LANtastic Information ********************************************/
BOOL fLANtasticPresent; /* TRUE if LANtastic is running */
BOOL fLANtasticServer; /* TRUE if running as a server */
BOOL fLANtasticRedir; /* TRUE if running redirector */
BOOL fLANtasticPopUp; /* TRUE if running popup software */
WORD wLANtasticVersionMajor; /* The major version number */
WORD wLANtasticVersionMinor; /* The minor version number */
} NETWORK_STRUCT;
/* OS Version structure */
#define MAX_OEM_VER 80
#define MAX_OEM_VER_STRINGS 5
#define MAX_PATH_TO_PROGRAM _MAX_PATH + 1
typedef struct _OS_VERSION_STRUCT
{
WORD wDosMajor; /* DOS major version */
WORD wDosMinor; /* DOS minor version */
WORD wDosRevision; /* DOS revision */
WORD wOemSerialNumber; /* OEM serial number */
DWORD dwUserSerialNumber; /* User serial number */
WORD wDosLoadedFlags; /* 0=Conventional,8=ROM,16=HMA */
CHAR chDosBootDrive; /* Boot drive */
BOOL fOs2Installed; /* TRUE if OS/2 is running */
BOOL fDosShellTaskSwitcher; /* TRUE if DOSSHELL task switcher in use */
WORD wWindowsType; /* Type of Windows running */
WORD wWindowsMajor; /* Windows major for Win >= 3.0 */
WORD wWindowsMinor; /* Windows minor for Win >= 3.0 */
WORD wDesqViewMajor; /* DESQview major version */
WORD wDesqViewMinor; /* DESQview minor version */
WORD w3270Installed; /* 0=No, 1=Control Pgm, 2=Workstation Pgm */
WORD w3270Major; /* 3270 program major version */
WORD w3270Minor; /* 3270 program minor version */
BOOL fDoubleDosInstalled; /* TRUE if DoubleDOS installed */
BOOL fTaskViewInstalled; /* TRUE if TaskView installed */
WORD wTopViewMajor; /* TopView major version */
WORD wTopViewMinor; /* TopView minor version */
CHAR szPathToProgram[MAX_PATH_TO_PROGRAM];
/* Fully qualified path to program */
CHAR szOemVer[MAX_OEM_VER_STRINGS][MAX_OEM_VER];
/* Stores the OEM version number strings */
} OS_VERSION_STRUCT;
#define NO_WINDOWS 0
#define WIN_286 1
#define WIN_386 2
#define WIN_REAL_MODE 3
#define WIN_STANDARD_MODE 4
#define WIN_ENHANCED_MODE 5
#define WIN_UNKNOWN_MODE 6
#define NO_3270_PROGRAM 0
#define _3270_PC_CONTROL_PROGRAM 1
#define _3270_WORKSTATION_PROGRAM 2
/* Mouse structure */
#define MAX_MOUSE_HARDWARE_TYPE 32
#define MAX_MOUSE_DRIVER_MFGR 32
#define MAX_MOUSE_DRIVER_TYPE 32
#define MAX_COM_PORT_LEN 10
#define MAX_MOUSE_LANGUAGE 11
#define MAX_DRIVER_FILE_TYPE 10
#define MAX_MOUSE_INI_PATH _MAX_PATH + 1
typedef struct _MOUSE_STRUCT
{
BOOL fHardwareInstalled; /* TRUE if mouse device is detected */
WORD wMouseHardwareType; /* Mouse hardware detected (numeric) */
CHAR szMouseHardwareType[MAX_MOUSE_HARDWARE_TYPE];
/* Mouse hardware detected (string) */
WORD wDriverMfgr; /* Manufacturer of mouse driver (numeric) */
CHAR szDriverMfgr[MAX_MOUSE_DRIVER_MFGR];
/* Manufacturer of mouse driver (string) */
WORD wMouseDriverType; /* Driver detected mouse (Inport/Bus/etc) */
CHAR szMouseDriverType[MAX_MOUSE_DRIVER_TYPE];
/* Driver detected mouse (string) */
WORD wMsMajorVersion; /* Mouse driver major version */
WORD wMsMinorVersion; /* Mouse driver minor version */
WORD wOemMajorVersion; /* OEM's Mouse driver version (major) */
WORD wOemMinorVersion; /* OEM's Mouse driver version (minor) */
WORD wIrq; /* IRQ used by the mouse */
WORD wComPort; /* COM port used by the mouse (numeric) */
CHAR szComPort[MAX_COM_PORT_LEN]; /* COM port use by mouse (string) */
WORD wComPortAddress; /* COM port's port address */
WORD wNmbrButtons; /* Number of buttons on mouse */
WORD wHMickeys; /* Horizontal mickeys */
WORD wVMickeys; /* Vertical mickeys */
WORD wThresholdSpeed; /* Doublespeed threshold */
WORD wLanguage; /* Language for mouse messages (numeric) */
CHAR szLanguage[MAX_MOUSE_LANGUAGE];
/* Language for mouse messages (string) */
WORD wDriverFileType; /* 0=Call not supported, 1=.COM, 2=.SYS */
CHAR szDriverFileType[MAX_DRIVER_FILE_TYPE];
/* Driver file type (string) */
CHAR szMouseIniPath[MAX_MOUSE_INI_PATH];
/* Fully qualified path to MOUSE.INI */
} MOUSE_STRUCT;
#define MOUSE_NO_MOUSE_DRIVER 0
#define MOUSE_MICROSOFT_DRIVER 1
#define MOUSE_LOGITECH_DRIVER 2
#define MOUSE_PC_MOUSE_DRIVER 3
#define MOUSE_UNKNOWN_FILE 0
#define MOUSE_COM_FILE 1
#define MOUSE_SYS_FILE 2
#define SERIAL_MOUSE 2
#define LOGITECH_SERIAL_MOUSE 7
#define BALLPOINT_MOUSE 80
/* Other Adapters Information Struct */
#define MAX_SOUND_NAME 40
typedef struct _OTHER_STRUCT
{
BOOL fGameInstalled; /* TRUE if game adapter installed */
WORD wJoystickAX; /* "A" Joystick's X value */
WORD wJoystickAY; /* "A" Joystick's Y value */
WORD wJoystickBX; /* "B" Joystick's X value */
WORD wJoystickBY; /* "B" Joystick's Y value */
BOOL fButtonA1; /* "A" Joystick's 1st button value */
BOOL fButtonA2; /* "A" Joystick's 2st button value */
BOOL fButtonB1; /* "B" Joystick's 1st button value */
BOOL fButtonB2; /* "B" Joystick's 2st button value */
BOOL fSoundInstalled; /* TRUE if sound adapter installed */
WORD wSoundName; /* Sound board (numeric) */
CHAR szSoundName[MAX_SOUND_NAME]; /* Sound board (string) */
WORD wSoundPort; /* I/O port used by sound adapter */
WORD wSoundIrq; /* IRQ used by sound adapter */
WORD wSoundDma; /* DMA channel used by sound adp. */
} OTHER_STRUCT;
/* Disk Drive Information Struct */
#define DISK_UNKNOWN_DRIVE 0
#define DISK_FLOPPY_DRIVE 1
#define DISK_525_360K 2
#define DISK_525_12M 3
#define DISK_35_720K 4
#define DISK_SINGLE_DENSITY_8_INCH 5
#define DISK_DOUBLE_DENSITY_8_INCH 6
#define DISK_FIXED_DISK 7
#define DISK_TAPE_DRIVE 8
#define DISK_35_144M 9
#define DISK_OPTICAL_DISK 10
#define DISK_35_288M 11
#define DISK_REMOTE_DRIVE 12
#define DISK_RAM_DISK 13
#define DISK_CD_ROM_DRIVE 14
#define DISK_SUBST_DRIVE 15
#define DISK_ASSIGN_DRIVE 16
#define MAX_DRIVE_LETTERS 33
#define MAX_DRIVE_TYPE_LEN 32
#define MAX_ASSIGN_TABLE 26
#define MAX_APPEND_PATH _MAX_PATH + 1
typedef struct _SINGLE_DRIVE_INFO
{
CHAR chDriveLetter; /* Drive letter for this drive */
WORD wDriveType; /* Drive type (360k floppy, 1.2M floppy ... */
CHAR szDriveType[MAX_DRIVE_TYPE_LEN]; /* Drive type (string) */
DWORD dwFreeBytes; /* Free bytes on this disk */
DWORD dwTotalBytes; /* Size of disk */
WORD wCylinders; /* Number of cylinders */
WORD wHeads; /* Number of heads */
WORD wBytesPerSector; /* Bytes per sector */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -