IOCTL Device or File Info

 DOS Fn 4400H and 4401H use this for values passed in DX.  The bit flags
 have different meanings, depending upon bit 7 (device or file).

    Note: The upper 8 bits are the same as those in the Device Attribute
          for the device.

IoctlDevInfoRec ─── layout when describing a device
 1 1 1 1 1 1
╓5┬4┬3┬2┬1┬0┬9┬8╥7┬6┬5┬4┬3┬2┬1┬0╖
║1│ │ │0│ │0 0 0║1│e│b│f│c│n│o│i║
╙╥┴╥┴╥┴─┴╥┴─┴─┴─╨┴╥┴╥┴╥┴╥┴╥┴╥┴╥╜ bit  mask
 ║ ║ ║   ║        ║ ║ ║ ║ ║ ║ ╚═► 0: 0001H Console Input device
 ║ ║ ║   ║        ║ ║ ║ ║ ║ ╚═══► 1: 0002H Console Output device
 ║ ║ ║   ║        ║ ║ ║ ║ ╚═════► 2: 0004H Null device
 ║ ║ ║   ║        ║ ║ ║ ╚═══════► 3: 0008H Clock device
 ║ ║ ║   ║        ║ ║ ╚═════════► 4: 0010H special device; fast output
 ║ ║ ║   ║        ║ ╚═══════════► 5: 0020H binary mode; 0=ASCII
 ║ ║ ║   ║        ╚═════════════► 6: 0040H not EOF; 0=EOF on input
 ║ ║ ║   ║       ╚═══════════════► 7: 0080H 1=device
 ║ ║ ║   ╚═══════════════════════►11: 0800H supports device open  DvRq 0DH
 ║ ║ ║                                      and device close      DvRq 0EH
 ║ ║ ╚═══════════════════════════►13: 2000H spts output-till-busy DvRq 10H
 ║ ╚═════════════════════════════►14: 4000H supports IOCTL Read   DvRq 03H
 ║                                          and IOCTL Write       DvRq 0CH
 ╚═══════════════════════════════►15: 8000H 0=block device; 1=char device

IoctlFileInfoRec ─── layout when describing a file
 1 1 1 1 1 1
╓5┬4┬3┬2┬1┬0┬9┬8╥7┬6┬5┬4┬3┬2┬1┬0╖
║0│ │ │0│ │0 0 0║0│ │ drive ID  ║
╙╥┴╥┴╥┴─┴╥┴─┴─┴─╨┴╥┴╥┴─┴─┴─┴─┴╥╜ bit  mask
 ║ ║ ║   ║        ║ ╚═════════╩═►0-5: 003fH drive ID (0=A, 1=B, etc.)
 ║ ║ ║   ║        ╚═════════════►  6: 0040H not EOF; 0=EOF on input
 ║ ║ ║   ║       ╚═══════════════►  7: 0080H 0=file
 ║ ║ ║   ╚═══════════════════════► 11: 0800H supports device open  DvRq 0DH
 ║ ║ ║                                       and device close      DvRq 0EH
 ║ ║ ║                                       and Removable Media   DvRq 0FH
 ║ ║ ╚═══════════════════════════► 13: 2000H 0=Needs FAT with BPB  DvRq 02H
 ║ ╚═════════════════════════════► 14: 4000H supports IOCTL Read   DvRq 03H
 ║                                           and IOCTL Write       DvRq 0CH
 ╚═══════════════════════════════►15: 8000H 0=block device; 1=char device

See Also: fn 4400H (IOCTL query device/file flags)
          fn 4401H (IOCTL set device/file flags)
          Device Attribute
          DOS Functions
                                    -♦-