I/o supervisor Guide for Windows 9x/Me Operating Systems


Appendix 3 - IOS Registration Flowchart



Download 0.64 Mb.
Page13/16
Date31.07.2017
Size0.64 Mb.
#25729
1   ...   8   9   10   11   12   13   14   15   16

Appendix 3 - IOS Registration Flowchart
















Appendix 4 - IOS Layer Drivers

The following chart supplies general information about the assorted IOS layer drivers, including the criteria used to determine whether or not a layer driver adds itself to the call down chain associated with a DCB it receives during AEP_CONFIG_DCB:




Device

Layer no.

Layer type

AEP_CONFIG_DCB Call down insertion qualifications (tested in the order shown)

VOLTRACK.VXD

5

DRP_

VOLTRK_


BIT

  1. Ignores if !(DCB_device_flags & DCB_DEV_REMOVABLE)

  2. Hooks if DCB_device_type is DCB_type_floppy

  3. Ignores if !(DCB_device_flags & DCB_DEV_LOGICAL)

  4. Hooks if DCB_device_type is DCB_type_disk or DCB_type_cdrom.

CDTSD.VXD

6

DRP_

CLASS_ DRV_BIT



  1. Ignore if not (DCB_device_type == DCB_type_cdrom).

  2. Ignore if any of the following DCB_dmd_flags bits are set: (DCB_dmd_srb_cdb+DCB_dmd_rsrv_1+DCB_dmd_rsrv_2).

DISKTSD.VXD

7

DRP_TSD_

BIT


  1. Ignore if a logical DCB or if handled by rmm (if DCB_device_flags & (DCB_dev_logical | DCB_dev_rmm))

  2. Ignore if not a disk (DCB_device_type != DCB_type_disk)

  3. Ignore if not a floppy (DCB_device_type != DCB_type_floppy)

  4. Ignore if any of the following DCB_dmd_flags bits are set: (DCB_dmd_srb_cdb+DCB_dmd_rsrv_1+DCB_dmd_rsrv_2).

APIX.VXD

11

DRP_SCSI_ LAYER_BIT

  1. Ignore if not a physical DCB
    (!(DCB_device_flags & DCB_dev_physical))

  2. Ignore if device doesn’t use the SCSI bus
    (DCB_Bus_Type != DCB_Bus_SCSI)

CDVSD.VXD

13

DRP_VSD_5_ BIT

  1. Ignore if a logical DCB or if handled by rmm (if DCB_device_flags & (DCB_dev_logical | DCB_dev_rmm))

  2. Ignore if device doesn’t use the SCSI bus
    (DCB_Bus_Type != DCB_Bus_SCSI)

  3. Ignore if not a CD-ROM (DCB_device_type != DCB_Type_CDROM)

  4. Accept if device has been forced to use protected mode code or it is safe to use protected mode code. Ignore if MSCDEX is installed.

NECATAPI.VXD

14

DRP_VSD_6_ BIT

  1. Ignore if a logical DCB or if handled by rmm (if DCB_device_flags & (DCB_dev_logical | DCB_dev_rmm))

  2. Ignore if device doesn’t use the SCSI bus
    (DCB_Bus_Type != DCB_Bus_SCSI)

  3. Ignore if not a CD-ROM (DCB_device_type != DCB_Type_CDROM)

  4. (This VxD tweaks the CDB if the target device is an NEC ATAPI device).

DISKVSD.VXD

16

DRP_VSD_8_ BIT

  1. Ignore if a logical DCB or if handled by rmm (if DCB_device_flags & (DCB_dev_logical | DCB_dev_rmm))

  2. Ignore if device doesn’t use the SCSI bus
    (DCB_Bus_Type != DCB_Bus_SCSI)

  3. Ignore if not a disk (DCB_device_type != DCB_Type_disk)

  4. Accept if !(DCB_inquiry_flags.INQ_dev_type_mod & INQ_mod_removable).

  5. Otherwise, conditionally accept depending on manufacturer ID (Insite or IOMEGA floptical).

ATAPCHNG.VXD

16

DRP_VSD_8_ BIT

  1. Ignore if a logical DCB or if handled by rmm (if DCB_device_flags & (DCB_dev_logical | DCB_dev_rmm))

  2. Ignore if neither DCB_port_name == IDEATAPI, or DCB_device_flags2 == DCB_DEV2_ATAPI_DEVICE

  3. Ignore if not SCSI (DCB_Bus_Type != DCB_Bus_SCSI)

  4. Ignore if not CD-ROM (DCB_Device_Type!=DCB_Type_CDROM)

  5. Ignore if LUN=0 (if non zero, it’s a drive the atapi changer created)

  6. Issue a sense command to the CDROM to identify whether it is a changer; ignore if it isn’t.

  7. Otherwise take over the CDROM device.

SCSI1HLP.VXD

15

DRP_VSD_7_ BIT

  1. Ignore if a logical DCB or if handled by rmm (if DCB_device_flags & (DCB_dev_logical | DCB_dev_rmm))

  2. Ignore if device doesn’t use the SCSI bus
    (DCB_Bus_Type != DCB_Bus_SCSI)

  3. Ignore if not a CDROM (DCB_device_type != DCB_Type_CDROM)

  4. Check the dead_drive_table list. If in the list, and within the revision range specified, set DCB_cd_device_flags |= DCB_CD_FAKE_SCSI1. This will force a “bad” drive to use scsi1 behavior.

  5. Check the mfg_id_table. If in the table, or if the ANSI version field indicates it is a generic SCSI1 device ((DCB_inquiry_flags[2] & 0000111) < 2), accept it (take over the device).

  6. Note that when this driver intercepts requests, it will ignore IOR_SCSI_PASS_THROUGH IOP’s.

SMARTVSD.VXD

17

DRP_VSD_9_ BIT

  1. Ignore if a logical DCB or if handled by rmm (if DCB_device_flags & (DCB_dev_logical | DCB_dev_rmm))

  2. Accept if (DCB_bus_type == DCB_BUS_ESDI) && (DCB_device_type == DCB_type_disk)), or if (DCB_device_flags2 & DCB_DEV2_ATAPI_DEVICE)

  3. Note that this VxD doesn’t “hook” into the calldown chain. It serves as a ring 3 interface (DeviceIoControl).

SCSIPORT.PDR

21

DRP_NT_PD_ BIT

(No qualifications needed – this is a port driver)

ESDI_506.PDR

22

DRP_ESDI_PD_BIT

(No qualifications needed – this is a port driver)

HSFLOP.PDR

27

DRP_NEC_ FLOPPY_BIT

(No qualifications needed – this is a port driver)

RMM.PDR

30

DRP_SOC_ DRV_BIT

(No qualifications needed – this is a port driver)




Download 0.64 Mb.

Share with your friends:
1   ...   8   9   10   11   12   13   14   15   16




The database is protected by copyright ©ininet.org 2024
send message

    Main page