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
-♦-