[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Format of device driver header:
Offset  Size    Description
 00h    DWORD   pointer to next driver, offset=FFFFh if last driver
 04h    WORD    device attributes
                Character device:
                   bit 15 set
                   bit 14 IOCTL supported (see AH=44h)
                   bit 13 (DOS 3+) output until busy supported
                   bit 12 reserved
                   bit 11 (DOS 3+) OPEN/CLOSE/RemMedia calls supported
                   bits 10-8 reserved
                   bit 7  (DOS 5+) Generic IOCTL check call supported (cmd 19h)
                                (see AX=4410h,AX=4411h)
                   bit 6  (DOS 3.2+) Generic IOCTL call supported (command 13h)
                                (see AX=440Ch,AX=440Dh)
                   bit 5  reserved
                   bit 4  device is special (use INT 29 "fast console output")
                   bit 3  device is CLOCK$ (all reads/writes use transfer
                                record described below)
                   bit 2  device is NUL
                   bit 1  device is standard output
                   bit 0  device is standard input
                Block device:
                   bit 15 clear
                   bit 14 IOCTL supported
                   bit 13 non-IBM format
                   bit 12 reserved
                   bit 11 (DOS 3+) OPEN/CLOSE/RemMedia calls supported
                   bit 10 reserved
                   bit 9  direct I/O not allowed???
                          (set by DOS 3.3 DRIVER.SYS for "new" drives)
                   bit 8  ??? set by DOS 3.3 DRIVER.SYS for "new" drives
                   bit 7  (DOS 5+) Generic IOCTL check call supported (cmd 19h)
                                (see AX=4410h,AX=4411h)
                   bit 6  (DOS 3.2+) Generic IOCTL call supported (command 13h)
                                implies support for commands 17h and 18h
                                (see AX=440Ch,AX=440Dh,AX=440Eh,AX=440Fh)
                   bits 5-2 reserved
                   bit 1   driver supports 32-bit sector addressing
                   bit 0   reserved
                Note: for European MSDOS 4.0, bit 11 also indicates that bits
                        8-6 contain a version code (000 = DOS 3.0,3.1;
                        001 = DOS 3.2, 010 = European DOS 4.0)
 06h    WORD    device strategy entry point
                call with ES:BX -> request header (see INT 2F/AX=0802h)
 08h    WORD    device interrupt entry point
---character device---
 0Ah  8 BYTEs   blank-padded character device name
---block device---
 0Ah    BYTE    number of subunits (drives) supported by driver
 0Bh  7 BYTEs   unused
---
 12h    WORD    (CD-ROM driver) reserved, must be 0000h
 14h    BYTE    (CD-ROM driver) drive letter (must initially be 00h)
 15h    BYTE    (CD-ROM driver) number of units
 16h  6 BYTEs   (CD-ROM driver) signature 'MSCDnn' where 'nn' is version
                        (currently '00')

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson