Table of Contents
Note: This API call is for DOS and Win16 personality only. Use Family API for portability.
Int 21H, AH=44H, AL=00H
Version
2 and higher
Brief
GET DEVICE INFORMATION
Family API
Input
AX = 4400h
BX = handle
Return
CF clear if successful
DX = device information word (see #01423)
AX destroyed
CF set on error
AX = error code (01h,05h,06h) (see #01680 at AH=59h/BX=0000h)
Macro
Notes
value in DH corresponds to high byte of device driver's attribute word if handle refers to a character device
Novell NetWare reportedly does not return a drive number in bits 5-0 for a disk file
this function was not supported by Digital Research's DOS Plus
Bitfields for device information word:
| Bit(s) | Description |
|---|---|
| character device | |
| 14 | device driver can process IOCTL requests (see AX=4402h“DOS 2+”) |
| 13 | output until busy supported |
| 11 | driver supports OPEN/CLOSE calls |
| 8 | ??? (set by MS-DOS 6.2x KEYB) |
| 7 | set (indicates device) |
| 6 | EOF on input |
| 5 | raw (binary) mode |
| 4 | device is special (uses INT 29) |
| 3 | clock device |
| 2 | NUL device |
| 1 | standard output |
| 0 | standard input |
| disk file | |
| 15 | file is remote (DOS 3.0+) |
| 14 | don't set file date/time on closing (DOS 3.0+) |
| 11 | media not removable |
| 8 | (DOS 4 only) generate INT 24 if no disk space on write or read past end of file |
| 7 | clear (indicates file) |
| 6 | file has not been written |
| 5-0 | drive number (0 = A:) |
See also
AX=4401h,INT 2F/AX=122Bh, INT 29
Note
Text based on Ralf Brown Interrupt List Release 61
| osFree Macro Library | |
|---|---|
| Video I/O | @SetMode @SetCurSz @SetCurPos @GetCur @SetPage @ScrollUp @ScrollDn @Scroll @GetChAtr @PutChAtr @PutCh @SetPalet @SetColor @SetDot @GetDot @WrtTTY @VideoState @GetMode @GetDisplay @GetVideoState @GetEGAInfo @Cls |
| Hardware info | @Equipment @MemSize |
| Serial I/O | @AuxInit @AuxSendChar @AuxRecieveChar @AuxStatus |
| Tape I/O | @TapeOn @TapeOff @TapeRead @TapeWrite |
| Keyboard I/O | @KbdStatus @CharIn @CharPeek |
| Printer I/O | @PrnPrint @PrnInit @PrnStatus |
| Disk I/O | @DskReset @DskStatus @DskRead @DskWrite @DskVerify @DskFormat |
| Date and Time | @SetTime @GetTime |
| Mouse | @MouInit @MouShowPointer @MouStatus @MouSetPos @MouSetMickey @MouRegion |
| Memory manager | @ModBlok SET_BLOCK |





