typedef struct _DCB_BLOCKDEV { ULONG DCB_BDD_Next; BYTE DCB_BDD_BD_Major_Version; // INIT <BDD_BD_Major_Ver> BYTE DCB_BDD_BD_Minor_Version; // INIT <BDD_BD_Minor_Ver> BYTE DCB_BDD_Device_SubType; BYTE DCB_BDD_Int_13h_Number; ULONG DCB_BDD_flags; // was BDD_Flags ULONG DCB_BDD_Name_Ptr; // Apparent geometry as seen by TSD and above ULONG DCB_apparent_sector_cnt[2]; // # of sectors ULONG DCB_apparent_blk_size; // blk size of device ULONG DCB_apparent_head_cnt; // # of heads ULONG DCB_apparent_cyl_cnt; // # of cylinders ULONG DCB_apparent_spt; // # of secs/trk ULONG DCB_BDD_Sync_Cmd_Proc; ULONG DCB_BDD_Command_Proc; ULONG DCB_BDD_Hw_Int_Proc; // INIT <0> ULONG DCB_BDP_Cmd_Queue_Ascending; ULONG DCB_BDP_Cmd_Queue_Descending; ULONG DCB_BDP_Current_Flags; ULONG DCB_BDP_Int13_Param_Ptr; ULONG DCB_BDP_Current_Command; ULONG DCB_BDP_Current_Position[2]; ULONG DCB_BDP_Reserved[5]; ULONG DCB_fastdisk_bdd; // set for DCBs created when a // fastdisk regs with the // blockdev BDD for it. Else 0. } DCB_BLOCKDEV, *PDCB_BLOCKDEV;
Contains block device information. The initial set of members in this structure should not be re-ordered or modified in any way as the offset and the size of members must match those in BLOCKDEV.H for compatibility.