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_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