United States Patent 19 11 Patent Number: 5,907,703 Kronenberg Et Al
Total Page:16
File Type:pdf, Size:1020Kb
USOO5907703A United States Patent 19 11 Patent Number: 5,907,703 Kronenberg et al. (45) Date of Patent: May 25, 1999 54) DEVICE DRIVER FOR ACCESSING “Compact -Notes,” “Compact,” “Expand,” “Create More COMPUTER FILES Disk Space by Using Disk Compression on NTFS Vol umes,” Microsoft Windows NT 4.0 Help file, 1996. 75 Inventors: Pierre-Michel Kronenberg, Middleton; Mark Nelson and Jean-Loup Gailly, “The Data Compres Derek T. Zahn, Madison, both of Wis. sion Book,” M & T Books, Second Edition 1996, pp. 73 Assignee: Mijenix Corporation, Boulder, Colo. 209-212. Ruediger R. Asche, “The Little Device Driver,” Microsoft Development Network Technology Group. Technical 21 Appl. No.: 08/643,454 Articles: Windows: Drivers, Microsoft Developer Network 22 Filed: May 8, 1996 Library CD, Apr. 1996. 51) Int. Cl. ............................ G06F 15/163; G06F 9/00; “Introduction to Windows 95 Device Drivers,” DDK. Win G06F 9/46 dows 95 Device Driver Kit, Microsoft Developer Network 52 U.S. Cl. .................... 395/681; 395/828; 364/222.81; Library CD, Apr. 1996. 364/955 “DOS/Win32 Installable File System Specifications' DDK. 58 Field of Search ..................................... 395/680, 682, Windows 95 Device Driver Kit, Microsoft Developer Net 395/681 work Library CD, Apr. 1996. “StuffIt SpacerSaver User's Guide,” Aladdin System, Inc., 56) References Cited Sep. 1994, pp. 19-28. U.S. PATENT DOCUMENTS Primary Examiner Lucien U. Toplu 5,414,850 5/1995 Whiting .................................. 395/682 ASSistant Examiner-Peter Stecher 5,457,681 10/1995 Gaddis et al.. 5,572,209 11/1996 Farmer et al. ............................ 341/67 Attorney, Agent, or Firm Arnold White & Durkee 5,628,010 5/1997 Ooishi et al. ........................... 395/680 57 ABSTRACT OTHER PUBLICATIONS A computer device driver for accessing compressed files Microsoft Resource Kit, Microsoft Press, “Using Disk Com held in archives in a memory device, the device driver pression with Windows 95” . Apr. 10,1995. comprising: means for reading a compressed file from an “Stacker Coprocessor Card with MS-DOS and archive in the memory device, decompressing the file in EMM386.EXE," Microsoft Knowledge Base, PSS ID Num RAM and retaining the decompressed file in RAM in whole ber; Nov. 22, 1994. or in part So that operations to the memory device can be “Stacker Disk-Compression Utility with Windows.” performed on the decompressed file by the operating System Microsoft Knowledge Base, PSS ID Number: Q71787; Nov. without having first to write the decompressed file to the 22, 1994. memory device. The device driver also comprises means for “Microsoft Plus! Drvspace.txt File Contents,” Microsoft accessing the file in Said RAM and changing the contents of Knowledge Base, PSS ID Number: Q138310; Jan. 23, 1996. the file; and for returning the file to the archive in said “Using Disk Compression with Windows 95, Microsoft memory device. Windows 95 Resource Kit, Microsoft Windows 95 Resource Kit, Microsoft Developer Network Library CD, Apr. 1996. 19 Claims, 5 Drawing Sheets 5O CENTRAL LOADARCWEFILE 502 DIRECTORY No CENTRAL / LOADED DIRECTORY Yes 5 03 WALD PATHIN RETURNERROR L-504 REQUEST Yes so 5 RECUEST |SWALID RETURNERROR IGNORE Yes 507 508 510 OPEN READ Ng WRITE No CLOSE OPERATION OPERATION OPERATION OPERATION Yes Yes Yes Yes 5 12 513 CREATEDATA 514 51 STRUCTURES FILE No FILE DECOMPRESSED No. ECOM ESSEY (ENSELE DATA 520 N. Yes Ye UPDATEFILE OECOMPRESS DATAIN FILE TO MEMORY ARCHIVE s RETURN 56 521-\- Update FILEHANLE ARCHIVE WHICHREFERS RETURNFILE WRITEFI FILE CENTRAL TOFILEIN DATAFROM DATAN DIRECTORY ARCHIVE MEMORY MEMORY CLEANUPDATA STRUCTURES 58 519 522 U.S. Patent May 25, 1999 Sheet 1 of 5 5,907,703 10 RAM (BANK 1) BUS SLOTS (BANK 2) A/G f U.S. Patent May 25, 1999 Sheet 2 of 5 5,907,703 20 APPLICATION PROGRAM OPERATING SYSTEM 21 AND DEVICE DRIVERS 22 BIOS DISKOR MEMORY 23 CONTROLLER DISKOR DISKOR DISKOR MEMORY MEMORY MEMORY 24 24 24 A/G 2 U.S. Patent May 25, 1999 Sheet 3 of 5 5,907,703 FILE SYSTEM 301 REQUEST FOLDER FILE ENUMERATION SYSTEM FLE OPERATION OPERATION p VIRTUAL VIRTUAL VIRTUAL FOLDER FOLDER FOLDER AUGMENT EMULATE THE ENUMERATION EMULATE FILE SYSTEM EMULATE THE WITH VIRTUAL ENUMERATION OPERATION FILE OPERATION FOLDER THAT OF VIRTUAL REQUEST REQUEST REPRESENTS THE FOLDER (FIG.2) (FIG. 3) ARCHIVE FILE PASS REQUEST TO OPERATING SYSTEM A/G 3 U.S. Patent May 25, 1999 Sheet 4 of 5 5,907,703 401 Ery LOAD ARCHIVE FILE 402 LOADED CENTRAL DIRECTORY 403 VALID N 404 PATH IN O RETURNERROR REQUEST YeS 405 406 REQUEST NO |SWALID RETURNERROR Yes USE CENTRAL DIRECTORY 407 INFORMATION TO EMULATE REOUEST 409 408 CENTRAL DIRECTORY NO RETURN WITHOUT UPDATING INFORMATION CENTRAL DIRECTORY CHANGED Yes UPDATE ARCHIVE FILE 410 CENTRAL DIRECTORY A/G 4 U.S. Patent May 25, 1999 Sheet 5 of 5 5,907,703 501 CENTRAL LOAD ARCHIVE FILE I/502 DIRECTORY NO CENTRAL LOADED DIRECTORY 503 VALID No 504 PATHIN RETURNERROR REQUEST 505 No 506 511 REQUEST |SWALD RETURNERROR IGNORE Yes 508 510 Yes FILE DATA CHANGED DECOMPRESS UAE EE FILE TO MEMORY ARCHIVE 521 RETURN 516 UPDATE FILE HANDLE ARCHIVE WHICH REFERS RETURN FILE WRITE FILE FILE CENTRAL TO FILE IN DATA FROM DATA IN DIRECTORY ARCHIVE MEMORY MEMORY CLEAN UPDATA STRUCTURES 518 519 A/G 5 522 5,907,703 1 2 DEVICE DRIVER FOR ACCESSING tion to another. Moreover, it will be appreciated that Such a COMPUTER FILES development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of device FIELD OF THE INVENTION engineering for those of ordinary skill having the benefit of this disclosure. The invention relates generally to device drivers in com The general architecture of the computer System that is puter Systems with memory devices. In particular, the inven one embodiment of this invention is shown in FIG. 1. The tion relates to device drivers which provide for accessing computer main memory or RAM can be divided into banks and updating compressed files on disk Storage devices, 10 and 11 and contain data, intermediate results as well as particularly in personal computer Systems. programs Stored by the microprocessor 12. The micropro cessor 12 can also execute instructions stored in ROM 13. SUMMARY OF THE INVENTION The microprocessor 12 can be, for example, a i486 or It is an object of the invention to provide for the fast and Pentium processor manufactured by Intel Corporation. The efficient accessing and updating of compressed files Stored ROM contains the Basic Input Output System (BIOS) which on Storage devices. 15 is a set of programs and data that are executed by the A further object of the invention is to provide a system microprocessor at power-up. The BIOS also provides vari which displays archives as folders and provides for the fast ouS Support routines for input/output access and control. accessing and updating of files on Storage devices. Also shown is a direct memory access (DMA) unit 14 which provides for the direct transfer of data from an outside Still another object of the invention is to provide a system source (connected at bus 15) and the RAM. in which Virtual folders are accessible by an operating FIG. 2 illustrates the various levels of software present in System. a preferred embodiment of the invention. At the top level is Yet another object of the invention is to provide a system an application program 20, at a lower level is an operating which accesses compressed files in memory for a user in a system 21, and at an even lower level is BIOS 22. The Simple and understandable manner and which uses a mini 25 operating System 21 is layered as well. Its center is occupied mal number of Steps in performing the access. by the Kernel which comprises at least the routines for In accordance with the present invention, the foregoing memory management, executing task Switches, and han objectives are realized by a computer device driver for dling critical errors. Device drivers run in a layer on top of interfacing with an operating System and for accessing the Kernel and Supply functions Such as data and file compressed files held in archives in a memory device, Said management, character input, hardware device interfaces, device driver comprising: means for reading a compressed and drive access. The operating System can also use device file from an archive in Said memory device, decompressing drivers to bypass BIOS and access devices directly. said file in RAM and retaining the decompressed file in Turning next to FIGS. 3, 4, and 5 a preferred embodiment RAM in whole or in part so that operations can be performed of a device driver program embodying the present invention on the decompressed file by the operating System without 35 begins by receiving a file System request from the operating having first to write the decompressed file to the Storage system at step 301. The file system request contains infor device; means mation indicating the type of request to be performed, the for accessing Said file in Said RAM and changing the identity of the file on which the operation is to be performed, contents of Said file, and means for returning Said file to Said and any other information needed to perform a Successful archive in Said Storage device. 40 operation. The operation specified in the file System request may be an operation to enumerate the contents of a folder, BRIEF DESCRIPTION OF THE DRAWINGS perform file system operations which do not modify the FIG. 1 is a block diagram of a computer System using a contents of a file, or perform Some type of operation that device driver according to principles of the present inven modifies the contents of a particular file.