INT 21,44,0 / IOCTL,0 - Get Device Information
AH = 44h AL = 00 BX = handle (must be an opened device) on return AX = error code if CF set (see DOS ERROR CODES) DX = device information (see tables below) │F│E│D│C│B│A-8│7│6│5-0│ DX Block Device Information │ │ │ │ │ │ │ │ └───── drive number (0=A:,1=B:) │ │ │ │ │ │ │ └─────── 0 = file has been written │ │ │ │ │ │ └──────── 0 = disk file; 1 = character device │ │ │ │ │ └────────── reserved, must be zero │ │ │ │ └──────────── 1 = media not removable │ │ │ └───────────── 1 = network device (DOS 3.x+) │ │ └────────────── 1 = reserved │ └─────────────── 1 = don't update file time or date (DOS 4.x+) └──────────────── 1 = file is remote (DOS 3.x+) │F│E│D│C│B│A-8│7│6│5│4│3│2│1│0│ DX Character Device Information │ │ │ │ │ │ │ │ │ │ │ │ │ └──── 1 = standard input device │ │ │ │ │ │ │ │ │ │ │ │ └──── 1 = standard output device │ │ │ │ │ │ │ │ │ │ │ └──── 1 = NUL device │ │ │ │ │ │ │ │ │ │ └──── 1 = clock device │ │ │ │ │ │ │ │ │ └──── uses DOS INT 29 for fast character output │ │ │ │ │ │ │ │ └──── 1 = binary mode, 0 = translated │ │ │ │ │ │ │ └──── 0 = end of file on input │ │ │ │ │ │ └──── 1 = character device, 0 if disk file │ │ │ │ │ └───── reserved │ │ │ │ └────── 1 = media not removable │ │ │ └────── 1 = network device (DOS 3.x+) │ │ └────── reserved │ └────── 1 = supports IOCTL, via functions 2 & 3 └────── reserved - BIT 7 of register DX can be used to detect if STDIN/STDOUT is redirected to/from disk; if a call to this function has DX BIT 7 set it's not redirected from/to disk; if it's clear then it is redirected to/from disk - BIT B of register DX can be used to determine if a drive is removable.