www.pudn.com > litth_virldisk.zip > dcb.inc
;**************************************************************************** ; * ; THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY * ; KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE * ; IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR * ; PURPOSE. * ; * ; Copyright (C) 1993-95 Microsoft Corporation. All Rights Reserved. * ; * ;**************************************************************************** DCB_cd_table_depth EQU 10 DCB_cd_entry STRUC DCB_cd_io_address DD ? DCB_cd_flags DD ? DCB_cd_ddb DD ? DCB_cd_next DD ? DCB_cd_expan_off DW ? DCB_cd_layer_flags DB ? DCB_cd_lgn DB ? DCB_cd_entry ENDS DCB_COMMON STRUC DCB_physical_dcb DD ? DCB_expansion_length DD ? DCB_ptr_cd DD ? DCB_next_dcb DD ? DCB_next_logical_dcb DD ? DCB_drive_lttr_equiv DB ? DCB_unit_number DB ? DCB_TSD_Flags DW ? DCB_vrp_ptr DD ? DCB_dmd_flags DD ? DCB_device_flags DD ? DCB_device_flags2 DD ? DCB_Partition_Start DD ? DCB_track_table_ptr DD ? DCB_bds_ptr DD ? DCB_Reserved1 DD ? DCB_Reserved2 DD ? DCB_apparent_blk_shift DB ? DCB_partition_type DB ? DCB_sig DW ? DCB_device_type DB ? DCB_Exclusive_VM DD ? DCB_disk_bpb_flags DB ? DCB_cAssoc DB ? DCB_Sstor_Host DB ? DCB_user_drvlet DW ? DCB_Reserved3 DW ? DCB_Reserved4 DD ? DCB_COMMON ENDS DCB_BLOCKDEV STRUC DCB_BDD_Next DD ? DCB_BDD_BD_Major_Version DB BDD_BD_Major_Ver DCB_BDD_BD_Minor_Version DB BDD_BD_Minor_Ver DCB_BDD_Device_SubType DB ? DCB_BDD_Int_13h_Number DB ? DCB_BDD_flags DD ? DCB_BDD_Name_Ptr DD ? DCB_apparent_sector_cnt DD 2 DUP (?) DCB_apparent_blk_size DD ? DCB_apparent_head_cnt DD ? DCB_apparent_cyl_cnt DD ? DCB_apparent_spt DD ? DCB_BDD_Sync_Cmd_Proc DD ? DCB_BDD_Command_Proc DD ? DCB_BDD_Hw_Int_Proc DD 0 DCB_BDP_Cmd_Queue_Ascending DD ? DCB_BDP_Cmd_Queue_Descending DD ? DCB_BDP_Current_Flags DD ? DCB_BDP_Int13_Param_Ptr DD ? DCB_BDP_Current_Command DD ? DCB_BDP_Current_Position DD 2 DUP (?) DCB_BDP_Reserved DD 5 DUP (?) DCB_fastdisk_bdd DD ? DCB_BLOCKDEV ENDS DCB STRUC DCB_cmn DB SIZE DCB_COMMON DUP (?) DCB_max_xfer_len DD ? DCB_actual_sector_cnt DD 2 DUP (?) DCB_actual_blk_size DD ? DCB_actual_head_cnt DD ? DCB_actual_cyl_cnt DD ? DCB_actual_spt DD ? DCB_next_ddb_dcb DD ? DCB_dev_node DD ? DCB_bus_type DB ? DCB_bus_number DB ? DCB_queue_freeze DB ? DCB_max_sg_elements DB ? DCB_io_pend_count DB ? DCB_lock_count DB ? DCB_SCSI_VSD_FLAGS DW ? DCB_scsi_target_id DB ? DCB_scsi_lun DB ? DCB_scsi_hba DB ? DCB_max_sense_data_len DB ? DCB_srb_ext_size DW ? DCB_inquiry_flags DB 8 DUP (?) DCB_vendor_id DB 8 DUP (?) DCB_product_id DB 16 DUP (?) DCB_rev_level DB 4 DUP (?) DCB_port_name DB 8 DUP (?) DCB_current_unit DB ? DCB_blocked_iop DD ? DCB_vol_unlock_timer DD ? DCB_access_timer DB ? DCB_Vol_Flags DB ? DCB_q_algo DB ? DCB_unit_on_ctl DB ? DCB_Port_Specific DD ? DCB_spindown_timer DD ? DCB_bdd DB SIZE DCB_BLOCKDEV DUP (?) DCB ENDS LOG_DCB STRUC DCB_cmn DB SIZE DCB_COMMON DUP (?) LOG_DCB ENDS DCB_disk STRUC DCB_filler_1 DB SIZE DCB DUP (?) DCB_write_precomp DW ? DCB_disk_tsd_private DD ? DCB_disk ENDS DCB_floppy STRUC DCB_filler_3 DB SIZE DCB_disk DUP (?) DCB_3mode_Flags DW ? DCB_floppy ENDS DCB_IS_3MODE_DRIVE EQU 0001H DCB_SET_RPM_ON_ACCESS EQU 0002H DCB_disk_geometry STRUC sector_cnt DD 2 DUP (?) blk_size DD ? head_cnt DD ? cyl_cnt DD ? spt DD ? DCB_disk_geometry ENDS .errnz DCB_apparent_sector_cnt - DCB_apparent_sector_cnt[0] - sector_cnt[0] .errnz DCB_apparent_blk_size - DCB_apparent_sector_cnt[0] - blk_size .errnz DCB_apparent_head_cnt - DCB_apparent_sector_cnt[0] - head_cnt .errnz DCB_apparent_cyl_cnt - DCB_apparent_sector_cnt[0] - cyl_cnt .errnz DCB_apparent_spt - DCB_apparent_sector_cnt[0] - spt .errnz DCB_actual_sector_cnt - DCB_actual_sector_cnt[0] - sector_cnt[0] .errnz DCB_actual_blk_size - DCB_actual_sector_cnt[0] - blk_size .errnz DCB_actual_head_cnt - DCB_actual_sector_cnt[0] - head_cnt .errnz DCB_actual_cyl_cnt - DCB_actual_sector_cnt[0] - cyl_cnt .errnz DCB_actual_spt - DCB_actual_sector_cnt[0] - spt DCBF_DISK_BPB_USEFAKE EQU 00000001H CDROM_MAX_TOC EQU 804 CDROM_MAX_MODE_BUF EQU 20 DCB_cdrom STRUC DCB_filler_2 DB SIZE DCB DUP (?) DCB_cdrom_Partition_Start DD ? DCB_cdrom_Partition_End DD ? DCB_cd_ls_ft DB ? DCB_TOC DD CDROM_MAX_TOC / 4 + 1 DUP (?) .errnz (DCB_TOC / 4) * 4 - DCB_TOC DCB_cd_mode_sense_buf DD CDROM_MAX_MODE_BUF /4 + 1 DUP (?) DCB_cd_first_session DB ? DCB_cd_last_session DB ? DCB_play_resume_start DD ? DCB_play_resume_stop DD ? DCB_play_status DD ? DCB_cd_device_flags DD ? DCB_cd_fs_lt DB ? DCB_cd_bobbit_pt DB ? DCB_cd_fs_lo DD ? DCB_cd_last_session_start DD ? DCB_cd_current_block_size DD ? DCB_cd_vol_map DB 8 DUP (?) DCB_cd_current_command DD ? DCB_cd_queue_head DD ? DCB_cd_reserved DD ? DCB_cdrom ENDS DCB_cdaudio_playing EQU 0001H DCB_cdaudio_paused EQU 0002H DCB_cdaudio_vol_set EQU 0004H DCB_cd_supports_audio_play EQU 0001H DCB_cd_supports_data_only EQU 0000H DCB_cd_multi_session_valid EQU 0002H DCB_CD_CHANGEABLE_BLOCK EQU 0004H DCB_CD_FAKE_SCSI2 EQU 0008H DCB_CD_CDPLUS_DISC EQU 0010H DCB_CD_FAKE_SCSI1 EQU 0020H DCB_CD_USE_ATAPI_READCD EQU 0040H DCB_q_fi_fo EQU 00H DCB_q_sort EQU 01H DCB_type_disk EQU 00H DCB_type_tape EQU 01H DCB_type_printer EQU 02H DCB_type_processor EQU 03H DCB_type_worm EQU 04H DCB_type_cdrom EQU 05H DCB_type_scanner EQU 06H DCB_type_optical_memory EQU 07H DCB_type_changer EQU 08H DCB_type_comm EQU 09H DCB_type_floppy EQU 0AH ifdef NEC_98 DCB_type_optical_nec EQU 84H endif DCB_INQ_DATA_LENGTH EQU SIZE DCB_inquiry_flags+SIZE DCB_vendor_id+SIZE DCB_product_id+SIZE DCB_rev_level DCB_BUS_ESDI EQU 00H DCB_BUS_SCSI EQU 01H DCB_BUS_NEC EQU 02H DCB_BUS_SMART EQU 03H DCB_BUS_ABIOS EQU 04H DCB_VF_INHIBIT_LOCKING EQU 01H DCB_VF_INHIBIT_IO EQU 02H DCB_VF_INHIBIT_GEOM_RECOMPUTE EQU 04H DCB_VF_INHIBIT_GEOM_RECOMPUTE_BIT EQU 2 DCB_VF_UNLOCK_SCHED_BIT EQU 4 DCB_VF_UNLOCK_SCHED EQU (1 SHL DCB_VF_UNLOCK_SCHED_BIT) DCB_VF_NEED_PHYS_RECOMP_BIT EQU 5 DCB_VF_NEED_PHYS_RECOMP EQU (1 SHL DCB_VF_NEED_PHYS_RECOMP_BIT) DCB_VF_PROT_NEC_DRIVE_BIT EQU 6 DCB_VF_PROT_NEC_DRIVE EQU (1 SHL DCB_VF_PROT_NEC_DRIVE_BIT) DCB_TSD_INVALID_PARTITION EQU 1 DCB_TSD_BAD_MBR EQU 1 DCB_TSD_USER_LETTERS_CHECKED_BIT EQU 1 DCB_TSD_USER_LETTERS_CHECKED EQU 1 SHL DCB_TSD_USER_LETTERS_CHECKED_BIT DCB_TSD_FIRST_USER_CHECK_BIT EQU 2 DCB_TSD_FIRST_USER_CHECK EQU 1 SHL DCB_TSD_FIRST_USER_CHECK_BIT DCB_TSD_BID_SET_GEOM EQU 0008H DCB_TSD_USER_SET_BIT EQU 4 DCB_TSD_USER_SET EQU 1 SHL DCB_TSD_USER_SET_BIT DCB_TSD_NO_USER_INT13 EQU 0020H DCB_TSD_PROTMODE_INT_13_BIT EQU 6 DCB_TSD_PROTMODE_INT_13 EQU 1 SHL DCB_TSD_PROTMODE_INT_13_BIT DCB_TSD_NONEXIST_PARTITION_BIT EQU 7 DCB_TSD_NONEXIST_PARTITION EQU 1 SHL DCB_TSD_NONEXIST_PARTITION_BIT DCB_TSD_MBPB_PBR EQU 0100H DCB_TSD_RBPB_INIT_BIT EQU 09H DCB_TSD_RBPB_INIT EQU (1 SHL DCB_TSD_RBPB_INIT_BIT) DCB_TSD_MBPB_INIT EQU 0400H DCB_TSD_APPARENT_PBR EQU 0800H DCB_TSD_APPARENT_ROM EQU 1000H DCB_TSD_ACTUAL_SET EQU 2000H DCB_TSD_ACTUAL_PRE_SET EQU 4000H DCB_TSD_APPARENT_PRE_SET EQU 8000H DCB_DEV_SPINDOWN_SUPPORTED_BIT EQU 31 DCB_DEV_SPINDOWN_SUPPORTED EQU (1 SHL DCB_DEV_SPINDOWN_SUPPORTED_BIT) DCB_DEV_SPUN_DOWN_BIT EQU 30 DCB_DEV_SPUN_DOWN EQU (1 SHL DCB_DEV_SPUN_DOWN_BIT) DCB_DEV_IO_ACTIVE_BIT EQU 29 DCB_DEV_IO_ACTIVE EQU (1 SHL DCB_DEV_IO_ACTIVE_BIT) DCB_DEV_INT13_CONFIGURED_BIT EQU 28 DCB_DEV_INT13_CONFIGURED EQU (1 SHL DCB_DEV_INT13_CONFIGURED_BIT) DCB_DEV_NO_ASPICAM_BIT EQU 27 DCB_DEV_NO_ASPICAM EQU (1 SHL DCB_DEV_NO_ASPICAM_BIT) DCB_DEV_REMOVAL_PENDING_BIT EQU 26 DCB_DEV_REMOVAL_PENDING EQU (1 SHL DCB_DEV_REMOVAL_PENDING_BIT) DCB_DEV_RMM_INT13_BIT EQU 25 DCB_DEV_RMM_INT13 EQU (1 SHL DCB_DEV_RMM_INT13_BIT) DCB_DEV_TSD_PROCESSED_BIT EQU 24 DCB_DEV_TSD_PROCESSED EQU (1 SHL DCB_DEV_TSD_PROCESSED_BIT) DCB_DEV_SINGLE_FLOPPY EQU 00800000H DCB_DEV_REAL_MODE EQU 00400000H DCB_DEV_QUE_DESCEND EQU 00200000H DCB_DEV_MEDIA_CHANGED EQU 00100000H DCB_DEV_INVALID_GEOM EQU 00080000H DCB_DEV_INHIBIT_SW_TIMED_SUPPORT EQU 00040000H DCB_DEV_ASYNC_MED_CHG_SUPPORT EQU 00020000H DCB_DEV_SYNC_MED_CHG_SUPPORT EQU 00010000H DCB_DEV_PHYSICAL EQU 00008000H DCB_DEV_LOGICAL EQU 00004000H DCB_DEV_LOGICAL_BIT EQU 14 DCB_DEV_RMM EQU 00002000H DCB_DEV_RMM_BIT EQU 13 DCB_DEV_UNCERTAIN_MEDIA EQU 00001000H DCB_DEV_ROM_CFG_REQ EQU 00000800H DCB_DEV_MUST_CONFIGURE EQU 00000400H DCB_DEV_SSTOR_VOL EQU 00000200H DCB_DEV_PAGING_DEVICE EQU 00000100H DCB_CHAR_DEVICE EQU 00000080H DCB_DEV_I13_IN_PROGRESS EQU 00000040H DCB_DEV_CACHE EQUDCB_DEV_SERIAL_CMD EQU DCB_DEV_REMOTE EQU DCB_DEV_REMOVABLE EQU DCB_DEV_REMOVABLE_BIT EQU 2 DCB_DEV_WRITEABLE EQU DCB_DEV_INT13_DRIVE EQU DCB_DEV2_THREAD_LOCK EQU 00000001H DCB_DEV2_THREAD_LOCK_BIT EQU 0 DCB_DEV2_ATAPI_DEVICE EQU 00000002H DCB_DEV2_ATAPI_DEVICE_BIT EQU 1 DCB_DEV2_DMF_DISK EQU 00000004H DCB_DEV2_DMF_DISK_BIT EQU 2 DCB_DEV2_I13_COPY_PROT EQU 00000008H DCB_DEV2_I13_COPY_PROT_BIT EQU 3 DCB_DEV2_FAIL_FORMAT EQU 00000010H DCB_DEV2_FAIL_FORMAT_BIT EQU 4 DCB_DEV2_FLOPTICAL EQU 00000020H DCB_DEV2_FLOPTICAL_BIT EQU 5 ifdef NEC_98 DCB_DEV2_98_PARTITION EQU 80000000H DCB_DEV2_98_PARTITION_BIT EQU 31 endif DCB_dmd_srb_cdb EQU 00000001H DCB_dmd_rsrv_1 EQU 00000002H DCB_dmd_logical EQU 00000004H DCB_dmd_physical EQU 00000008H DCB_dmd_small_memory EQU 00000010H DCB_dmd_rsrv_2 EQU 00000020H DCB_dmd_rsrv_3 EQU 00000040H DCB_dmd_rsrv_4 EQU 00000080H DCB_dmd_not_512 EQU 00000100H DCB_dmd_word_align EQU 00000200H DCB_dmd_dword_align EQU 00000400H DCB_dmd_phys_sgd EQU 00000800H DCB_dmd_phys_sgd_ptr EQU 00001000H DCB_dmd_do_a_b_toggling EQU 00002000H DCB_dmd_query_remov EQU 00004000H DCB_dmd_request_sns EQU 00008000H DCB_dmd_lock_unlock_media EQU 00010000H DCB_dmd_load_eject_media EQU 00020000H DCB_dmd_clear_media_chg EQU 00040000H DCB_dmd_serialize_bit EQU 19 DCB_dmd_serialize EQU 1 SHL DCB_dmd_serialize_bit DCB_dmd_prot_mode EQU 00100000H DCB_dmd_no_xclusive EQU 00200000H DCB_dmd_pageability EQU 00400000H DCB_dmd_rsrv EQU DCB_dmd_rsrv_1+DCB_dmd_rsrv_2+DCB_dmd_rsrv_3+DCB_dmd_rsrv_4