Path: utzoo!attcan!uunet!husc6!uwvax!rutgers!columbia!garfield!aronoff From: aronoff@garfield (Avram Aronoff) Newsgroups: comp.sys.ibm.pc Subject: Re: help needed with device driver chai Message-ID: <5717@columbia.edu> Date: 19 Jun 88 04:56:09 GMT References: <39500014@pyr1.cs.ucl.ac.uk> Sender: nobody@columbia.edu Reply-To: aronoff@garfield.UUCP (Avram Aronoff) Organization: Columbia University CS Department Lines: 28 In article <39500014@pyr1.cs.ucl.ac.uk> awylie@pyr1.cs.ucl.ac.uk writes: >Can someone out there tell me how to find the beginning of the DOS device >driver chain? The following information is from _MS-DOS Papers_ by The Waite Group. DOS has an undocumented system call, 52H, which returns a pointer to the "list-of-lists," an array of far pointers to assorted structures. Do mov ah,52h int 21h A far pointer is returned in es:bx. The information contained there is: typedef struct ListOfLists { void far *DeviceControlBlockHead; void far *SystemFileTableHandlesHead; void far *ClockDriver; void far *ConsoleDriver; short MaximumSectorSize; void far *CacheBufferHead; void far *CurrentDirectoryStructure; void far *SystemFileTableFCBsHead; short SystemFileTableFCBsSize; char DriveCount; char LastDrive; } LOL; The NUL device driver begins immediately after the ListOfLists, and the segment of the first Memory Control Block sits immediately before it. Hymie