#include <dcb.h>
typedef struct _DCB {
DCB_COMMON DCB_cmn; // common information
ULONG DCB_max_xfer_len; // maximum transfer length
// Actual geometry data (as seen below the TSD)
ULONG DCB_actual_sector_cnt[2]; // number of sectors
ULONG DCB_actual_blk_size; // actual block size of the device
ULONG DCB_actual_head_cnt; // number of heads
ULONG DCB_actual_cyl_cnt; // number of cylinders
ULONG DCB_actual_spt; // number of sectors per track
PVOID DCB_next_ddb_dcb; // link to next DCB on DDB chain
PVOID DCB_dev_node; // address of dev node for device
BYTE DCB_bus_type; // Bus type; see below
BYTE DCB_bus_number; // channel (cable) within adapter
UCHAR DCB_queue_freeze; // queue freeze depth counter
UCHAR DCB_max_sg_elements; // max # s/g elements; see below
// Volume tracking layer use only
UCHAR DCB_io_pend_count; // # of pending requests for DCB
UCHAR DCB_lock_count; // # of LOCK MEDIA commands
// SCSI
USHORT DCB_SCSI_VSD_FLAGS; // Flags for SRB builder
BYTE DCB_scsi_target_id; // SCSI target ID
BYTE DCB_scsi_lun; // SCSI logical unit number
BYTE DCB_scsi_hba; // prot-driver-relative adapter #
BYTE DCB_max_sense_data_len; // Maximum sense length
USHORT DCB_srb_ext_size; // miniport srb extension length
BYTE DCB_inquiry_flags[8]; // Device inquiry flags
BYTE DCB_vendor_id[8]; // Vendor ID string
BYTE DCB_product_id[16]; // Product ID string
BYTE DCB_rev_level[4]; // Product revision level
BYTE DCB_port_name[8]; //
UCHAR DCB_current_unit; // current unit #; see below
// Volume tracking layer use only
ULONG DCB_blocked_iop; // address of requests for an
// inactive volume
ULONG DCB_vol_unlock_timer; // unlock timer handle
UCHAR DCB_access_timer; // time measure between accesses
// Volume tracking layer use only
UCHAR DCB_Vol_Flags; // Volume tracking; see below
BYTE DCB_q_algo; // algorithm index; see below
BYTE DCB_unit_on_ctl; // 0-based device number on ctlr
ULONG DCB_Port_Specific; // bytes for port driver use
ULONG DCB_spindown_timer; // timer for drive spin down
DCB_BLOCKDEV DCB_bdd;
} DCB, *PDCB;
Contains device control block information for physical devices.
DCB_BUS_ESDI | ESDI BUS |
DCB_BUS_SCSI | SCSI BUS |
DCB_BUS_NEC | NEC BUS |
DCB_BUS_SMART | SMART BUS |
DCB_BUS_ABIOS | ABIOS BUS |
DCB_VF_INHIBIT_LOCKING | Indicates locking is temporarily inhibited |
DCB_VF_INHIBIT_IO | Indicates I/O is temporarily inhibited (event scheduled in volume tracker). |
DCB_VF_INHIBIT_GEOM_RECOMPUTE | Indicates geometry recompute is temporarily inhibited. |
DCB_VF_UNLOCK_SCHED | Indicates unlock event is scheduled. |
DCB_VF_NEED_PHYS_RECOMP | Indicates that a mapper drive needs a compute geometry request sent to the physical drive with same number as the given logical drive. |
DCB_VF_PROT_NEC_DRIVE | Indicates that this DCB has a corresponding protected mode physical NEC driver. |
DCB_q_fi_fo | First in, first out. |
DCB_q_sort | Special algorithm for disk. |
DCB_COMMON, DCB_BLOCKDEV