Every device driver, whether it supports a character device or a block device, consists of a device-driver header, a strategy routine, and an interrupt routine. These elements provide the information and code needed to carry out requests from MS-DOS for device input and output.
Installable device drivers are contained in either binary image files, containing absolute load images, or .EXE-format files. (Binary image files that contain device drivers are often given the filename extension .SYS to distinguish the files from other binary image files, such as .COM program files). Although most device-driver files contain a single device driver, some contain more than one, in which case the file must contain one header for each driver.