#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_device_type
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 e.g. 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