📄 test.h
字号:
class CTest1
{
private: //default for class is private
protected:
public:
DWORD id1;
char* id2;
CTest1();
~CTest1();
};
typedef unsigned char UCHAR;
typedef unsigned short USHORT;
typedef unsigned long ULONG;
typedef struct _DCB_cd_entry { /* */
PVOID DCB_cd_io_address; // addr of request routine
ULONG DCB_cd_flags; // demand bits - as defined below
ULONG DCB_cd_ddb; // driver's DDB pointer
ULONG DCB_cd_next; // pointer to next cd entry
USHORT DCB_cd_expan_off; // offset of expansion area
UCHAR DCB_cd_layer_flags; // flags for layer's use
UCHAR DCB_cd_lgn; // load group number
} DCB_cd_entry, *pDCB_cd_entry;
/*
** union fields follow
*/
/*
** fields common to physical and logical disk DCB's
*/
typedef struct _DCB_COMMON { /* */
ULONG DCB_physical_dcb; /* DCB for physical device */
ULONG DCB_expansion_length; /* total length of IOP extension filled */
/* in by IOS (excludes IOP size) */
/*
* Link fields follow
*/
PVOID DCB_ptr_cd; /* pointer to calldown list */
ULONG DCB_next_dcb; /* link to next DCB */
ULONG DCB_next_logical_dcb; /* pointer to next logical dcb */
/* for physical device */
BYTE DCB_drive_lttr_equiv; /* drive number (A: = 0, etc.) */
/* set up by iosserv during logical */
/* device associate processing. */
BYTE DCB_unit_number; /* either physical drive number */
/* (sequential drive number or'd */
/* with 80h) or unit number within */
/* tsd. set up by iosbid for disk */
/* physical dcb's. set up by tsdpart*/
/* for disk logical dcb's. set up by*/
/* tsdaer for cdrom physical dcb's. */
USHORT DCB_TSD_Flags; /* Flags for TSD */
/*
* Volume Tracking fields follow
*/
ULONG DCB_vrp_ptr; /* pointer to VRP for this DCB */
ULONG DCB_dmd_flags; /* demand bits of the topmost layer */
ULONG DCB_device_flags; /* was BDD_Flags */
ULONG DCB_device_flags2; /* second set of general purpose flags*/
ULONG DCB_Partition_Start; /* partition start sector */
ULONG DCB_track_table_ptr; /* pointer for the track table buffer */
/* for ioctls */
ULONG DCB_bds_ptr; /* DOS BDS corresp. to this DCB */
/* (logical DCB's only) */
ULONG DCB_Reserved1; /* reserved - MBZ */
//ULONG DCB_Reserved2; /* reserved - MBZ */
ULONG DCB_pEid; /* IDE ID block */
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 */
ULONG DCB_Exclusive_VM; /* handle for exclusive access to this device */
UCHAR DCB_disk_bpb_flags; /* bpb flags see defines below */
UCHAR DCB_cAssoc; /* count of logical drives */
/* associated with this logical DCB */
UCHAR DCB_Sstor_Host; /* This field indicates a sstor host volume */
USHORT DCB_user_drvlet; /* contains the userdriveletter settings else ff*/
USHORT DCB_Reserved3; /* reserved - MBZ */
//#ifndef OnNow
//ULONG DCB_Reserved4; /* reserved - MBZ */
//#else OnNow
BYTE DCB_fACPI; /* Are we on ACPI subtree ? */
BYTE DCB_fSpinDownIssued; /* Has a spindown issued ? */
BYTE DCB_bPowerState;
BYTE DCB_bEidLength;
//#endif
} DCB_COMMON, *PDCB_COMMON;
/*
** RMM uses DCB_Reserved2 field. This should be mutually exclusive to
** Pmode IDE driver controlled DCB which should never be controlled by RMM.
*/
#define DCB_Reserved2 DCB_pEid
/*
** blockdev compatible fields in physical disk DCB's
*/
typedef struct _DCB_BLOCKDEV { /* */
/* The initial set of fields below should not be re-ordered or modified in
* anyway as the offset and the size of fileds have to match those
* in BLOCKDEV.H for COMPATIBITLITY!!!
*/
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;
ULONG DCB_apparent_sector_cnt[2];/* num. of secs as seen by tsd and above */
ULONG DCB_apparent_blk_size; /* blk size of dev. as seen by tsd and above */
ULONG DCB_apparent_head_cnt; /* num. of heads as seen by tsd and above */
ULONG DCB_apparent_cyl_cnt; /* num. of cyls as seen by tsd and above */
ULONG DCB_apparent_spt; /* num. of secs/trk as seen by tsd and above */
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 */
/*
* End BlockDev compatibility
*/
} DCB_BLOCKDEV, *PDCB_BLOCKDEV;
/*
** define the device control block (dcb) for physical devices (i.e., disks)
*/
typedef struct _DCB { /* */
DCB_COMMON DCB_cmn;
ULONG DCB_max_xfer_len; /* maximum transfer length */
/*
* Actual geometry data follows
*/
ULONG DCB_actual_sector_cnt[2];/* number of sectors as seen below */
/* the tsd. */
ULONG DCB_actual_blk_size; /* actual block size of the device */
/* as seen below the tsd. */
ULONG DCB_actual_head_cnt; /* number of heads as seen below */
/* the tsd. */
ULONG DCB_actual_cyl_cnt; /* number of cylinders as seen */
/* below the tsd. */
ULONG DCB_actual_spt; /* number of sectors per track as */
/* seen below the tsd. */
PVOID DCB_next_ddb_dcb; /* link to next DCB on DDB chain */
PVOID DCB_dev_node; /* pointer to dev node for this device */
BYTE DCB_bus_type; /* Type of BUS, 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. set initially */
/* by port, but may be MORE RESTRICTIVELY */
/* updated by other layers */
UCHAR DCB_io_pend_count; /* indicates number of requests pending */
/* for this DCB (VOLUME TRACKING LAYER USE ONLY) */
UCHAR DCB_lock_count; /* depth counter for LOCK MEDIA commands */
/* (VOLUME TRACKING LAYER USE ONLY) */
/*
* SCSI fields follow
*/
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; /* adapter number relative to port driver */
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; /* used to emulate multiple logical devices */
/* with a single physical device */
ULONG DCB_blocked_iop; /* pointer to requests for an inactive */
/* volume (VOLUME TRACKING LAYER USE ONLY) */
ULONG DCB_vol_unlock_timer; /* unlock timer handle */
UCHAR DCB_access_timer; /* used to measure time between accesses */
UCHAR DCB_Vol_Flags; /* Flags for Volume Tracking */
/* volume tracking use only */
BYTE DCB_q_algo; /* queuing algorithm index - see */
/* values below. */
BYTE DCB_unit_on_ctl; /* relative device number on ctlr (0-based) */
ULONG DCB_Port_Specific; /* bytes for PORT DRIVER use */
ULONG DCB_spindown_timer; /* timer for drive spin down */
DCB_BLOCKDEV DCB_bdd;
} DCB, *PDCB;
/* ASM
;; changing the DCB size will break all precompiled utilities.
.errnz SIZE DCB NE 299
*/
/*
** define the device control block (dcb) for logical disk devices
*/
typedef struct _LOG_DCB { /* */
DCB_COMMON DCB_cmn;
} LOG_DCB, *PLOG_DCB;
/*
** define the device control block (dcb) for disk and cd-rom device types
*/
//
// NOTE: Any changes in this structure must also be reflected in cfr.h
//
// shk BUGBUG Note that this same structure is used for floppies too...
// see iosbid.asm in inquiry_type_table.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -