DCB_COMMON

#include <dcb.h>

typedef struct  _DCB_COMMON { 
    ULONG  DCB_physical_dcb;        // DCB for physical device 
    ULONG  DCB_expansion_length;    // expansion length; see below
    PVOID  DCB_ptr_cd;              // address of calldown list 
    ULONG  DCB_next_dcb;            // link to next DCB 
    ULONG  DCB_next_logical_dcb;    // address of next logical dcb
    BYTE   DCB_drive_lttr_equiv;    // drive number; see below
    BYTE   DCB_unit_number;         // drive or unit #; see below 
    USHORT DCB_TSD_Flags;           // TSD flags; see below

// Volume Tracking
    ULONG  DCB_vrp_ptr;             // address of VRP for this DCB 
    ULONG  DCB_dmd_flags;           // demand bits; see below
    ULONG  DCB_device_flags;        // general purpose flags; see below
    ULONG  DCB_device_flags2;       // general purpose flags; see below
    ULONG  DCB_Partition_Start;     // partition start sector 
    ULONG  DCB_track_table_ptr;     // address of track table buffer 
                                    //  for ioctls 
    ULONG  DCB_bds_ptr;             // DOS BDS corresp. to this DCB 
                                    //  (logical DCB's only)  
    ULONG  DCB_Reserved1;           // reserved; must be zero
    ULONG  DCB_Reserved2;           // reserved; must be zero
    BYTE   DCB_apparent_blk_shift;  // log of apparent_blk_size 
    BYTE   DCB_partition_type;      // partition type 
    USHORT DCB_sig;                 // padding and signature 
    BYTE   DCB_device_type;         // device type; see below
    ULONG  DCB_Exclusive_VM;        // exclusive access handle
    UCHAR  DCB_disk_bpb_flags;      // BPB flags; see below 
    UCHAR  DCB_cAssoc;              // # of assoc. logical drives 
    UCHAR  DCB_Sstor_Host;          // indicates a sstor host volume 
    USHORT DCB_user_drvlet;         // userdriveletter settings or 0xff
    USHORT DCB_Reserved3;           // reserved; must be zero
    ULONG  DCB_Reserved4;           // reserved; must be zero
} DCB_COMMON, *PDCB_COMMON;

Contains device control block information that is common to logical and physical devices.

DCB_expansion_length
Total length of IOP extension as filled in by the IOS. This excludes the size of the IOP size.
DCB_drive_lttr_equiv
Drive number. Can be 0 for A, 1 for B, and so on. Set up during logical device associate processing.
DCB_unit_number
Either physical drive number (sequential drive number with high bit set) or unit number within TSD. May be set up for disk physical, disk logical DCB, or CD-ROM physical DCBs.
DCB_TSD_Flags
Flags for the TSD. Can be a combination of these values:
DCB_TSD_INVALID_PARTITION Don't trust the BPB.
DCB_TSD_BAD_MBR Bad master boot record; physical device only.
DCB_TSD_USER_LETTERS_CHECKED User drive letters checked.
DCB_TSD_FIRST_USER_CHECK User drive letters checked first time.
DCB_TSD_BID_SET_GEOM All geometry set by BID.
DCB_TSD_USER_SET User set the a drive letter range.
DCB_TSD_NO_USER_INT13 User INT 13h disabled.
DCB_TSD_PROTMODE_INT_13 Proteceted-mode only INT 13h.
DCB_TSD_MBPB_PBR Recommend BPB set from PBR by TSD from INT 41h or INT 46h.
DCB_TSD_RBPB_INIT Recommend BPB initialized by TSD.
DCB_TSD_MBPB_INIT Media BPB initialized by TSD.
DCB_TSD_APPARENT_PBR Apparent set from primary PBR by TSD.
DCB_TSD_APPARENT_ROM Apparent set from ROM data by TSD.
DCB_TSD_ACTUAL_SET Actual set from apparent by TSD.
DCB_TSD_ACTUAL_PRE_SET Actual geometry set prior to TSD.
DCB_TSD_APPARENT_PRE_SET Apparent geometry set prior to TSD.

DCB_dmd_flags
Demand flags for the topmost layer. Can be a combination of these values:
DCB_device_flags
General purpose flags. Can be a combination of these values:
DCB_DEV_SPINDOWN_SUPPORTED Indicates drive supports spindown command.
DCB_DEV_SPUN_DOWN Indicates drive is currently spun down.
DCB_DEV_IO_ACTIVE Port driver use only. Indicates I/O has been received for this DCB.
DCB_DEV_INT13_CONFIGURED This device has been configured as an INT 13h drive.
DCB_DEV_NO_ASPICAM This DCB cannot handle ASPI or CAM requests.
DCB_DEV_REMOVAL_PENDING Device is going away soon.
DCB_DEV_RMM_INT13 Logical drives for this INT 13h device are controlled by the mapper.
DCB_DEV_TSD_PROCESSED Device has been processed by a TSD.
DCB_DEV_SINGLE_FLOPPY Equivalent to IRS_DRV_SINGLE_FLOPPY. Indicates that the dmd_a_b_toggling is not set in the floppy DCB.
DCB_DEV_REAL_MODE Device must be controlled by a real mode driver, and should not be taken over in protected mode.
DCB_DEV_QUE_DESCEND Current queuing direction is descending. Used by port drivers or IOS if DCB_SERIAL_CMD flag is set.
DCB_DEV_MEDIA_CHANGED Hardware indicated media change.
DCB_DEV_INVALID_GEOM Indicates the disk geometry has become invalid.
DCB_DEV_INHIBIT_SW_TIMED_SUPPORT Inhibits the volume tracking layer from carrying out the 2 second timing actions for media change. This bit is typically set if DCB_DEV_SYNC_MED_CHG_SUPPORT is set. Drive is in read only mode.
DCB_DEV_ASYNC_MED_CHG_SUPPORT Drive has hardware support to indicate by interrupt that disk door has been opened.
DCB_DEV_SYNC_MED_CHG_SUPPORT Drive has hardware support to indicate media change; first access of the drive after a media changed returns an error.
DCB_DEV_PHYSICAL Physical device.
DCB_DEV_LOGICAL Logical device.
DCB_DEV_RMM Real mode mapper DCB.
DCB_DEV_UNCERTAIN_MEDIA Media may have been changed.
DCB_DEV_ROM_CFG_REQ TSD must use ROM chain data.
DCB_DEV_MUST_CONFIGURE Set at create DCB time and cleared after all layer drivers receive the AEP_CONFIG_DCB function for this DCB.
DCB_DEV_SSTOR_VOL Set if this is SSTOR volume.
DCB_DEV_PAGING_DEVICE Indicates that the paging drive is on this DCB.
DCB_CHAR_DEVICE Indicates that this is a character device.
DCB_DEV_I13_IN_PROGRESS Used in conjunction with RMM and the global DCB. Set when an INT 13h is in progress and cleared when the INT 13h is complete.
DCB_DEV_CACHE BDF_CACHE
DCB_DEV_SERIAL_CMD BDF_Serial_Cmd
DCB_DEV_REMOTE BDF_Remote
DCB_DEV_REMOVABLE BDF_Removable
DCB_DEV_WRITEABLE BDF_Writeable
DCB_DEV_INT13_DRIVE BDF_Int13_Drive

DCB_device_flags2
General purpose flags. Can be a combination of these values:
DCB_DEV2_THREAD_LOCK (1)  
DCB_DEV2_ATAPI_DEVICE (2)
DCB_DEV2_DMF_DISK (4) Indicates current media is DMF
DCB_DEV2_I13_COPY_PROT (8) Indicates INT 13h copy protection access to one of the floppies.
DCB_DEV2_FAIL_FORMAT Indicates that we cannot allow format
DCB_DEV2_FLOPTICAL Indicates device is floptical
DCB_DEV2_IDE_FLOPTICAL (0x40) (OSR2) indicates device is IDE floptical

Device type. Can be one of these values:
DCB_type_disk All Direct Access Devices -- non-removable
DCB_type_tape Sequencial Access Devices
DCB_type_printer Printer Device
DCB_type_processor Processor type device
DCB_type_worm Write Once Read Many Device
DCB_type_cdrom CD ROM Device
DCB_type_scanner Scanner Device
DCB_type_optical_memory Some Optical disk
DCB_type_changer Changer device; for example, juke box
DCB_type_comm Communication devices
DCB_type_floppy Devices like floppy
DCB_type_optical_nec NEC 5.25" optical disk

DCB_disk_bpb_flags
Can be zero or this value:
DCBF_DISK_BPB_USEFAKE Maximum size of a table of contents for a CDROM. Must not exceed the value CDROM_MAX_TOC.

See Also

DCB, DCB_cd_entry, IOS, IOP, VRP