Ignore:
Timestamp:
Jan 26, 2002, 4:59:23 PM (24 years ago)
Author:
umoeller
Message:

program plus other fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/helpers/dosh.h

    r132 r133  
    7878
    7979    #ifdef INCL_DOSDEVIOCTL
    80 
    81         // flags for DRIVEPARMS.usDeviceAttrs (see DSK_GETDEVICEPARAMS in CPREF):
    82         #define DEVATTR_REMOVEABLE  0x0001      // drive is removeable
    83         #define DEVATTR_CHANGELINE  0x0002      // media has been removed since last I/O operation
    84         #define DEVATTR_GREATER16MB 0x0004      // physical device driver supports physical addresses > 16 MB
    8580
    8681        // #pragma pack(1)
     
    167162                                   PBIOSPARAMETERBLOCK pdp);
    168163
    169         BOOL XWPENTRY doshIsCDROM(PBIOSPARAMETERBLOCK pdp);
     164        BYTE doshQueryRemoveableType(PBIOSPARAMETERBLOCK pdp);
     165
     166        APIRET XWPENTRY doshHasAudioCD(ULONG ulLogicalDrive,
     167                                       HFILE hfDrive,
     168                                       BOOL fMixedModeCD,
     169                                       PBOOL pfAudio);
    170170
    171171    #endif
    172 
    173     APIRET XWPENTRY doshHasAudioCD(ULONG ulLogicalDrive,
    174                                    HFILE hfDrive,
    175                                    BOOL fMixedModeCD,
    176                                    PBOOL pfAudio);
    177172
    178173    VOID XWPENTRY doshEnumDrives(PSZ pszBuffer,
     
    186181    CHAR doshQueryBootDrive(VOID);
    187182
    188     #define ERROR_AUDIO_CD_ROM      10000
    189 
    190     #define ASSERTFL_MIXEDMODECD    0x0001
     183    #define ERROR_AUDIO_CD_ROM          10000
     184
     185    #define DRVFL_MIXEDMODECD        0x0001
     186    #define DRVFL_TOUCHFLOPPIES      0x0002
    191187
    192188    APIRET doshAssertDrive(ULONG ulLogicalDrive,
    193189                           ULONG fl);
     190
     191    #ifdef INCL_DOSDEVIOCTL
     192
     193        /*
     194         *@@ XDISKINFO:
     195         *
     196         *@@added V0.9.16 (2002-01-13) [umoeller]
     197         */
     198
     199        typedef struct _XDISKINFO
     200        {
     201            CHAR        cDriveLetter;           // drive letter
     202            CHAR        cLogicalDrive;          // logical drive no.
     203
     204            BOOL        fPresent;               // if FALSE, drive does not exist
     205
     206            // the following are only valid if fPresent == TRUE
     207
     208            BIOSPARAMETERBLOCK bpb;
     209                            // 0x00 USHORT usBytesPerSector;
     210                            // 0x02 BYTE   bSectorsPerCluster;
     211                            // 0x03 USHORT usReservedSectors;
     212                            // 0x05 BYTE   cFATs;
     213                            // 0x06 USHORT cRootEntries;
     214                            // 0x08 USHORT cSectors;
     215                            // 0x0a BYTE   bMedia;
     216                            // 0x0b USHORT usSectorsPerFAT;
     217                            // 0x0d USHORT usSectorsPerTrack;
     218                            // 0x0f USHORT cHeads;
     219                            // 0x11 ULONG  cHiddenSectors;
     220                            // 0x15 ULONG  cLargeSectors;
     221                            // 0x19 BYTE   abReserved[6];
     222                            // 0x1a USHORT cCylinders;
     223                            // 0x1c BYTE   bDeviceType;
     224                                    // DEVTYPE_48TPI                      0x0000
     225                                    // DEVTYPE_96TPI                      0x0001
     226                                    // DEVTYPE_35                         0x0002
     227                                    // DEVTYPE_8SD                        0x0003
     228                                    // DEVTYPE_8DD                        0x0004
     229                                    // DEVTYPE_FIXED                      0x0005
     230                                    // DEVTYPE_TAPE                       0x0006
     231                                    // DEVTYPE_UNKNOWN                    0x0007
     232                            // 0x1d USHORT fsDeviceAttr;
     233                                #define DEVATTR_REMOVEABLE              0x0001
     234                                            // drive is removeable
     235                                #define DEVATTR_CHANGELINE              0x0002
     236                                            // device can determine whether media has
     237                                            // been removed since last I/O operation
     238                                #define DEVATTR_GREATER16MB             0x0004
     239                                            // physical device driver supports physical
     240                                            // addresses > 16 MB
     241                                #define DEVATTR_PARTITIONALREMOVEABLE   0x0008
     242
     243            BYTE        bType;
     244                // do not change these codes, XWorkplace relies
     245                // on them too to parse WPDisk data
     246                #define DRVTYPE_HARDDISK        0
     247                #define DRVTYPE_FLOPPY          1
     248                #define DRVTYPE_TAPE            2
     249                #define DRVTYPE_VDISK           3
     250                #define DRVTYPE_CDROM           4
     251                #define DRVTYPE_LAN             5
     252                #define DRVTYPE_PARTITIONABLEREMOVEABLE 6
     253                #define DRVTYPE_UNKNOWN       255
     254
     255            ULONG       flDevice;
     256                // any combination of the following:
     257                #define DFL_REMOTE                      0x0001
     258                            // drive is remote (not local)
     259                #define DFL_FIXED                       0x0002
     260                            // drive is fixed; otherwise it is removeable!
     261                #define DFL_PARTITIONABLEREMOVEABLE     0x0004
     262                            // in that case, DFL_FIXED is set also
     263                #define DFL_BOOTDRIVE                   0x0008
     264                            // drive was booted from
     265
     266                // media flags:
     267
     268                #define DFL_MEDIA_PRESENT               0x1000
     269                            // media is present in drive; always
     270                            // true for fixed and remove drives and
     271                            // drives A: and B:
     272                #define DFL_AUDIO_CD                    0x2000
     273                            // set for CD-ROMs only, if an audio CD
     274                            // is currently inserted; in that case,
     275                            // DFL_MEDIA_PRESENT is _not_ set
     276                #define DFL_SUPPORTS_EAS                0x4000
     277                            // drive supports extended attributes
     278                #define DFL_SUPPORTS_LONGNAMES          0x8000
     279                            // drive supports long names; this does not
     280                            // necessarily mean that we support all IFS
     281                            // characters also
     282
     283            // the following are only valid if DFL_MEDIA_PRESENT is set;
     284            // they are always set for drives A: and B:
     285
     286            CHAR        szFileSystem[30];
     287                            // e.g. "FAT" or "HPFS" or "JFS" or "CDFS"
     288
     289            BYTE        bFileSystem;
     290                // do not change these codes, XWorkplace relies
     291                // on them too to parse WPDisk data
     292                #define FSYS_FAT             1
     293                #define FSYS_HPFS_JFS        2
     294                #define FSYS_CDFS            3
     295                #define FSYS_FAT32           8      // not used by WPS!
     296                #define FSYS_RAMFS           9      // not used by WPS!
     297                #define FSYS_REMOTE         10
     298
     299        } XDISKINFO, *PXDISKINFO;
     300
     301        APIRET doshGetDriveInfo(ULONG ulLogicalDrive,
     302                                ULONG fl,
     303                                PXDISKINFO pdi);
     304
     305    #endif
    194306
    195307    APIRET doshSetLogicalMap(ULONG ulLogicalDrive);
Note: See TracChangeset for help on using the changeset viewer.