This structure is used in the following IOCTL fns:
    440dH 40H (set device parameters)
    440dH 60H (query device parameter)
    DvRq 13H  (generic IOCTL for block devices)

  Offset Size Contents
  ▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
    +0     1  rSpclFns     bit flags select options
    +1     1  bDevType     device type code (returned from driver)
    +2     2  rDevAttr     bit 0: 0=removable; 1=non-removable
                           bit 1: 0=change-line not supported; 1=is
    +4     2  wCylCnt      number of cylinders (returned from driver)
    +6     1  bDevMedia    bit 0: 0=accepts high density (1.2MB) media
                                  1=accepts low-density (320K/360K) media
    +7    19H rDevBPB      Same as a BPBRec (25 bytes)
   +20H    ?  rTrkLayout   variable-length TrackLayoutRec
           ?+20H           size of an IoctlDeviceParmsRec

    rSpclFns  contain bit flags that specify options for fn 440dH 40H:
                bit 0: 0=use rDevBPB to set new defaults
                       1=use current BPB
                bit 1: 0=use all fields of this record
                       1=use just the rTrkLayout data
                bit 2: 0=(never use)
                       1=sectors are all the same size and sector numbers
                         begin with 0 (always set this bit)

    bDevType  identifies the device and medium.  It is one of:

              00H = 320/360K 5-¼ inch drive
              01H = 1.2M 5-¼ inch drive
              02H = 720K 3-½ inch drive
              03H = 8 inch single density drive
              04H = 8 inch double density drive
              05H = hard disk
              06H = tape drive
              07H = 1.44 MB
              08H = 2.88 MB
              09H = other

    rDevAttr  some more device info flags:
              bit 0: 0=removable
              bit 1: 0=change-line not supported
                     1=is supported (can sense when drive door opened)

     wCylCnt  maximum cylinder supported (e.g., for 440dH 41H Write Track)

      bMedia  one bit of media info:
              bit 0: 0=accepts high density (1.2MB) media
                     1=accepts low-density (320K/360K) media

     rDevBPB  an entire BPBRec structure (all 25 bytes).
              If rSpclFns bit 0 is clear, then this data is taken as the new
              default settings for the drive.
              If rSpclFns bit 1 is set, then this data is to be used by the
              driver when it gets a DvRq 02H (Build BPB) request.

  rTrkLayout  an entire TrackLayoutRec structure (variable length).
              If rSpclFns bit 1 is set, then only this track layout
              information is used.

See Also: fn 440dH (Generic IOCTL for block devices)
          Device Drivers
          DOS Functions