⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msd.h

📁 Dos6.0
💻 H
📖 第 1 页 / 共 5 页
字号:
  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 + -