![]() ![]() ![]() ![]() | Table Of Contents | Index |
DEVICE.EXE reports on device drivers installed by the CONFIG.SYS file. It shows the memory used by DOS itself, any additional drivers installed in CONFIG.SYS, and the space used for DOS file handles and buffers. Here is a simple example of DEVICE output:
Address Bytes Name Hooked vectors --------- ------ -------------- -------------- 0070:0BB3 - CON 0070:0C68 - AUX 0070:0C7A - COM1 0070:0D17 - PRN 0070:0D29 - LPT1 0070:0E15 - CLOCK$ 0070:0EE5 - 3 Block Units 0070:2071 - LPT2 0070:2083 - LPT3 0070:2095 - COM2 0000:2C58 37712 NUL 08 0A 0C 0D 0E 13 25 26 29 31 70 72 73 74 75 76 77 09A5:0000 3488 0 Block Units 0A7F:0000 18 EMMXXXX0 0A7F:0012 46 386MAX$$ 20 0A83:0000 768 1 Block Unit 19 0AB3:0000 768 1 Block Unit 0AE3:0000 18256 DOS buffersThe devices up to and including NUL are all part of DOS. DEVICE lumps their memory usage into a single value next to the NUL device. The memory usage associated with NUL does not include the interrupt vector table, the BIOS data area, or the low-memory DOS data area. If you wish to add this memory to the total, just take the hexadecimal segment of the first driver you see (in this case CON) and multiply it by 16 (decimal). When the segment is 0070 as shown, that adds 1792 bytes to the total space for DOS.
DEVICE also lumps all of the drivers up to NUL into a single block when it comes to reporting hooked interrupt vectors. Because WATCH can't be installed prior to these device drivers, DEVICE must use an empirical technique to detect which vectors each driver controls. Therefore, some meaningless vectors may appear in the list. Any vectors that are grabbed by another program after the driver is loaded will not appear.
"Block units" typically refer to disk drives. Any drivers that appear after the NUL device are in the order that you've entered them in CONFIG.SYS. Drivers loaded for non-standard hard disks, like SpeedStor, sometimes make odd entries in the DEVICE report, as shown with "0 Block Units" above. RAM disks appear more logically: each of the "1 Block Unit" entries above is a VDISK with the data stored in extended memory.
Devices like 386MAX may also cause odd-looking entries: 386MAX puts most of its code in extended memory, and leaves just a bit behind in normal memory.
DEVICE offers the following command line options:
/R raw report. /? write a help screen.You can also put the string DEVICE=options in the DOS environment. For example, if you type
SET DEVICE=/Rat the DOS command line, DEVICE will use the /R option as the default thereafter.
The raw report shows more information about the device drivers, but in a less convenient format. Here's an example, taken on the same system as the previous report.
Starting Next Strategy Interrupt Device Address Hdr Addr Attr Entry Pnt Entry Pnt Name --------- --------- ---- --------- --------- -------- 0000:2C58 0AB3:0000 8004 0000:14C6 0000:14CC NUL 0AB3:0000 0A83:0000 0800 0000:00A9 0000:00D4 1 Block Unit 0A83:0000 0A7F:0012 0800 0000:00A9 0000:00D4 1 Block Unit 0A7F:0012 0A7F:0000 C000 0000:0036 0000:003B 386MAX$$ 0A7F:0000 09A5:0000 8000 0000:0036 0000:003B EMMXXXX0 09A5:0000 0070:0BB3 2000 0000:0012 0000:001D 0 Block Units 0070:0BB3 0070:0C68 8013 0000:00C6 0000:00D1 CON 0070:0C68 0070:0D17 8000 0000:00C6 0000:00D7 AUX 0070:0D17 0070:0E15 A040 0000:00C6 0000:00E6 PRN 0070:0E15 0070:0EE5 8008 0000:00C6 0000:010C CLOCK$ 0070:0EE5 0070:0C7A 0840 0000:00C6 0000:0112 3 Block Units 0070:0C7A 0070:0D29 8000 0000:00C6 0000:00D7 COM1 0070:0D29 0070:2071 A040 0000:00C6 0000:00EC LPT1 0070:2071 0070:2083 A040 0000:00C6 0000:00F4 LPT2 0070:2083 0070:2095 A040 0000:00C6 0000:00FC LPT3 0070:2095 0070:FFFF 8000 0000:00C6 0000:00DD COM2In this report, the drivers are listed in DOS priority order rather than the order in which they are loaded in memory. Additional columns describe how DOS treats each driver. Ray Duncan's book "Advanced MS-DOS" is a good place to learn more about these details.
The DEVICE program assumes that all device drivers are loaded in the CONFIG.SYS file. That is not the case with the NetWare shell, which patches itself into the device driver chain. DEVICE will write a warning message and terminate before reporting the first patched-in driver. The raw device report will still show all of the devices even in this case.
![]() ![]() ![]() ![]() | Table Of Contents | Index |
|