1. Field of the Invention
The present invention relates generally to the field of retrieval and recovery of information and particularly to rapid and efficient retrieval and recovery of information stored in a mass storage device, which is accessible or inaccessible to an operating system.
2. Description of the Prior Art
In modern electronic systems, storage, retrieval, and recovery of digital information plays a significant role in the operation of devices included within such systems. A common example of an electronic system is a personal computer (PC), which requires access to digital data for processing thereof to perform and execute a wide variety of tasks. Digital data may be stored in a PC either internally as in a hard disk or externally in a mass storage data device such as a digital photo reader or a compact flash reader device.
In the conventional methods of accessing digital data, as implemented in electronic systems, an application program operating under a standard commercially available operating system accesses a mass storage data device for reading and/or writing of digital data. The operating system recognizes the mass storage data device and “mounts” it as an operating system data volume, i.e. a “disk drive”. The application program thereby accesses the mass storage data device at the logical level within the operating system using the operating system formatting information included within the mass storage data device.
However, the conventional methods of accessing digital data have a limitation that is encountered when the mass storage data device is for some reason corrupted. In the event of corruption of the mass storage data device, the electronic system cannot recover the digital data simply because the operating system is unable to communicate with the mass storage data device. Another limitation of the conventional methods of accessing digital data is that the application program commands the mass storage data device only with standard commands available to the operating system.
In light of the foregoing, it is desirable to develop a method and apparatus for accessing digital data even when the mass storage data device is corrupted and the operating system cannot communicate therewith. Further, the method and apparatus should not interfere with normal operations of the operating system, i.e. be transparent to the operating system. The desired method and apparatus should be able to access, retrieve, and recover information efficiently and cost-effectively.
Briefly, an embodiment of the present invention includes an image rescue system having an application program for communication with a mass storage device, said application program being in communication with an operating system layer for accessing said mass storage device to read and write information. The image rescue system further includes a device driver in communication with said application program, said operating system layer and said mass storage device, said device driver for allowing said application program to access said mass storage device to read and write information by bypassing said operating system layer, said device driver for communicating with said mass storage device to allow said application program to rapidly access information in said mass storage device considered damaged by said operating system layer, said damaged information being inaccessible to said operating system layer, wherein said image rescue system accesses said mass storage device to rapidly and efficiently retrieve and recover information accessible and inaccessible to said operating system layer.
The foregoing and other objects, features and advantages of the present invention will be apparent from the following detailed description of the preferred embodiments which make reference to several figures of the drawing.
The present invention employs a technique for directly accessing common mass storage data devices at the physical, rather than logical, device level; without assistance from operating system programming facilities. This allows for recovery, reconstruction and retrieval of valid user data files from a mass storage data device that the operating system would normally consider a “damaged” or corrupted mass storage data device.
The present invention allows the operating system to be extended to support the addition of an external mass storage data device to be added to the operating system as a standard system data volume or what is commonly known as a “disk drive”. An application program in concert with a device driver for the mass storage data device allow for rapid retrieval of what appears to be to the operating system “lost” or corrupted data from the mass storage data device.
In one embodiment of the present invention, the “mass storage data device” for which the application and driver is designed is Lexar Media, Inc. brand compact Flash cards connected to a personal computer (PC) or a Macintosh computer (Mac) via a universal serial bus (USB) 1.x connection via a Lexar Media brand Jumpshot cable. The application is not limited to this type of mass storage data device or this type of connection to the computer. The techniques described below will work for almost any mass storage data device, any storage technology, which is connected to the host computer in almost any way.
As will be explained in further detail with respect to
Referring now to
The PC 12 is shown to include an application program 16, which is in communication with the operating system layer 18 through an application program interface 22. The operating system layer 18 is shown to be in communication with a driver 20 through an operating system input/output (I/O) interface 24 and a driver I/O interface 32. The driver 20 is shown to include an access interface 26, which causes direct communication with the device 14 through a hardware interface layer 28 and the hardware bus 30. As shown in
In various embodiments of the present invention, the hardware bus 30 conforms to different standards and is thus referred to as a different interface. Examples of the different types of hardware bus 30 are USB, PCMCIA, IDE, mass storage interface, fire wire and blue tooth.
In prior art methods, the application program must communicate through the operating system layer to the driver. The problem with such prior art methods is that in the event of some sort of corruption of the device 14, the system can not recover the device simply because the operating system is unable to communicate with the device. In the present invention however, the driver 20 identifies the device 14 and recovers the information previously stored in the device even though the device 14 includes corrupt information. It should be noted that different drivers 20 are employed for different types of devices that device 14 can be. Similarly, the access interface 26 includes different extensions based upon the kind of device employed as device 14. Bypassing the operating system layer 18 enables establishing communication with devices, as device 14, that the PC 12 is not able to communicate with if the operating system layer 18 is not bypassed.
Referring still to
The technique employed searches for certain data file types that have distinguishable data “headers”. The “header” area includes data patterns that are unique to certain file types, for example, but not limited to, joint photographic experts group (JPEG) files or tagged image file format (TIFF) files. The application program also utilizes information gathered from the mass storage data device to formulate an algorithm to allow for an intelligent search of the mass storage data device instead of a “brute force” byte-by-byte search. The application program first directly queries the mass storage data device for its device characteristics using the access technique described hereinabove. This information is used to establish the absolute size in bytes of the device 14 along with obtaining its physical block size.
The physical block size, described in units of bytes, is the smallest unit of access that can be read or written to the mass storage data device. This unit is usually described as a binary multiple of a number of bytes, usually in the range of hundreds or thousands of bytes. The application will then attempt to read the operating system formatting information on the mass storage data device. This information is operating system dependent, the application knows what operating system it is running under and interprets the data accordingly. Since the formatting data may be damaged or corrupted, the application program attempts to determine if the formatting information is valid by examining certain operating system specific parameters contained within the formatting information for reasonable values.
Knowing that the operating system will only write file data in units of file allocation unit sizes, the application program searches for pertinent file header information 43 at the boundaries of these units; at the very most, the file allocation unit 41; at the very least the physical block size 42 of the mass storage data device.
This, therefore, will substantially increase the speed of the search as opposed to a byte-by-byte search on the mass storage data device. It is only necessary to examine the beginning of the search allocation units for the file header information 43. If no match of header information is found, the search algorithm skips to the beginning of the next search allocation unit on the mass storage data device. This process is continued until all areas on the mass storage data device have been examined.
Although the present invention has been described in terms of specific embodiment, it is anticipated that alterations and modifications thereof will no doubt become apparent to those more skilled in the art. It is therefore intended that the following claims be interpreted as covering all such alterations and modification as fall within the true spirit and scope of the invention.
This application claims the benefit of a previously filed U.S. Provisional Application No. 60/359,510 filed on Feb. 22, 2002, and entitled “IMAGE RESCUE.”
Number | Name | Date | Kind |
---|---|---|---|
4099069 | Cricchi | Jul 1978 | A |
4130900 | Watanabe | Dec 1978 | A |
4210959 | Wozniak | Jul 1980 | A |
4309627 | Tabata | Jan 1982 | A |
4355376 | Gould | Oct 1982 | A |
4398248 | Hsia | Aug 1983 | A |
4405952 | Slakmon | Sep 1983 | A |
4414627 | Nakamura | Nov 1983 | A |
4450559 | Bond et al. | May 1984 | A |
4456971 | Fukuda et al. | Jun 1984 | A |
4468730 | Dodd | Aug 1984 | A |
4473878 | Zolnovsky | Sep 1984 | A |
4476526 | Dodd | Oct 1984 | A |
4498146 | Martinez | Feb 1985 | A |
4525839 | Nozawa et al. | Jun 1985 | A |
4532590 | Wallach | Jul 1985 | A |
4609833 | Gutterman | Sep 1986 | A |
4616311 | Sato | Oct 1986 | A |
4654847 | Dutton | Mar 1987 | A |
4710871 | Belknap et al. | Dec 1987 | A |
4746998 | Robinson et al. | May 1988 | A |
4748320 | Yorimoto et al. | May 1988 | A |
4757474 | Fukushi et al. | Jul 1988 | A |
4774700 | Satoh et al. | Sep 1988 | A |
4780855 | Iida | Oct 1988 | A |
4788665 | Fukuda | Nov 1988 | A |
4797543 | Watanabe | Jan 1989 | A |
4800520 | Iijima | Jan 1989 | A |
4829169 | Watanabe | May 1989 | A |
4843224 | Ohta | Jun 1989 | A |
4896262 | Wayama et al. | Jan 1990 | A |
4914529 | Bonke | Apr 1990 | A |
4920518 | Nakamura et al. | Apr 1990 | A |
4924331 | Robinson et al. | May 1990 | A |
4943745 | Watanabe | Jul 1990 | A |
4953122 | Williams | Aug 1990 | A |
4970642 | Yamamura | Nov 1990 | A |
4970727 | Miyawaki | Nov 1990 | A |
5070474 | Tuma et al. | Dec 1991 | A |
5093785 | Ijima | Mar 1992 | A |
5168465 | Harari | Dec 1992 | A |
5198380 | Harari | Mar 1993 | A |
5200959 | Gross et al. | Apr 1993 | A |
5218695 | Novert | Jun 1993 | A |
5220518 | Haq | Jun 1993 | A |
5226168 | Kobayashi et al. | Jul 1993 | A |
5227714 | Lou | Jul 1993 | A |
5253351 | Yamamoto | Oct 1993 | A |
5267218 | Elbert | Nov 1993 | A |
5268318 | Harari | Dec 1993 | A |
5268870 | Harari | Dec 1993 | A |
5270979 | Harari et al. | Dec 1993 | A |
5293560 | Harari | Mar 1994 | A |
5303198 | Adachi | Apr 1994 | A |
5305276 | Uenoyama | Apr 1994 | A |
5305278 | Inoue | Apr 1994 | A |
5315541 | Harari et al. | May 1994 | A |
5315558 | Hag | May 1994 | A |
5329491 | Brown | Jul 1994 | A |
5337275 | Garner | Aug 1994 | A |
5341330 | Wells | Aug 1994 | A |
5341339 | Wells | Aug 1994 | A |
5341341 | Fukuzo | Aug 1994 | A |
5353256 | Fandrich et al. | Oct 1994 | A |
5357475 | Hasbun et al. | Oct 1994 | A |
5359569 | Fujita | Oct 1994 | A |
5365127 | Manley | Nov 1994 | A |
5369615 | Harari et al. | Nov 1994 | A |
5371702 | Nakai | Dec 1994 | A |
5381539 | Yanai | Jan 1995 | A |
5382839 | Shinohara | Jan 1995 | A |
5384743 | Rouy | Jan 1995 | A |
5388083 | Assar | Feb 1995 | A |
5396468 | Harari et al. | Mar 1995 | A |
5404485 | Ban | Apr 1995 | A |
5406527 | Honma | Apr 1995 | A |
5418752 | Harari | May 1995 | A |
5422842 | Cernea et al. | Jun 1995 | A |
5422856 | Sasaki | Jun 1995 | A |
5428621 | Mehrotha et al. | Jun 1995 | A |
5430682 | Ishikawa | Jul 1995 | A |
5430859 | Norman et al. | Jul 1995 | A |
5431330 | Wieres | Jul 1995 | A |
5434825 | Harari | Jul 1995 | A |
5438573 | Mangan et al. | Aug 1995 | A |
5465235 | Miyamoto | Nov 1995 | A |
5465338 | Olay | Nov 1995 | A |
5471478 | Mangan et al. | Nov 1995 | A |
5473765 | Gibbons | Dec 1995 | A |
5479638 | Assar | Dec 1995 | A |
5485595 | Assar et al. | Jan 1996 | A |
5490117 | Oda | Feb 1996 | A |
5495442 | Cernea et al. | Feb 1996 | A |
5504760 | Harari et al. | Apr 1996 | A |
5508971 | Cernea et al. | Apr 1996 | A |
5513138 | Manabe | Apr 1996 | A |
5515333 | Fujita | May 1996 | A |
5519847 | Fandrich | May 1996 | A |
5523980 | Sakui | Jun 1996 | A |
5524230 | Sakaue | Jun 1996 | A |
5530673 | Tobita | Jun 1996 | A |
5530828 | Kaki | Jun 1996 | A |
5530938 | Akasaka | Jun 1996 | A |
5532962 | Auclair et al. | Jul 1996 | A |
5532964 | Cernea et al. | Jul 1996 | A |
5534456 | Yuan et al. | Jul 1996 | A |
5535328 | Harari et al. | Jul 1996 | A |
5541551 | Brehner | Jul 1996 | A |
5544118 | Harari | Aug 1996 | A |
5544356 | Robinson | Aug 1996 | A |
5552698 | Tai | Sep 1996 | A |
5554553 | Harari | Sep 1996 | A |
5563825 | Cernea et al. | Oct 1996 | A |
5566314 | DeMarco et al. | Oct 1996 | A |
5568439 | Harari | Oct 1996 | A |
5572466 | Sukegawa | Nov 1996 | A |
5579502 | Konishi | Nov 1996 | A |
5581723 | Hasbun | Dec 1996 | A |
5583812 | Harari | Dec 1996 | A |
5592415 | Kato | Jan 1997 | A |
5592420 | Cernea et al. | Jan 1997 | A |
5596526 | Assar et al. | Jan 1997 | A |
5598370 | Nijima | Jan 1997 | A |
5602987 | Harari | Feb 1997 | A |
5603001 | Sukegawa | Feb 1997 | A |
5606660 | Estakhri et al. | Feb 1997 | A |
5611067 | Okamoto | Mar 1997 | A |
5640528 | Harney et al. | Jun 1997 | A |
5642312 | Harari | Jun 1997 | A |
5648929 | Miyamoto | Jul 1997 | A |
5663901 | Wallace et al. | Sep 1997 | A |
5693570 | Cernea et al. | Dec 1997 | A |
5712819 | Harari | Jan 1998 | A |
5719808 | Harari et al. | Feb 1998 | A |
5723990 | Roohparvar | Mar 1998 | A |
5734567 | Griffiths | Mar 1998 | A |
5745418 | Kabayashi | Apr 1998 | A |
5754567 | Norman | May 1998 | A |
5757712 | Nagel | May 1998 | A |
5758100 | Odisho | May 1998 | A |
5761117 | Uchino | Jun 1998 | A |
5768190 | Tanaka | Jun 1998 | A |
5768195 | Nakamuri | Jun 1998 | A |
5773901 | Kantner | Jun 1998 | A |
5778418 | Auclair et al. | Jul 1998 | A |
5781478 | Takeuchi | Jul 1998 | A |
5787445 | Daberko | Jul 1998 | A |
5787484 | Norman | Jul 1998 | A |
RE35881 | Barrett | Aug 1998 | E |
5799168 | Ban | Aug 1998 | A |
5802551 | Komatsu | Sep 1998 | A |
5809515 | Kaki | Sep 1998 | A |
5809558 | Matthews | Sep 1998 | A |
5809560 | Scheider | Sep 1998 | A |
5818350 | Estakhri et al. | Oct 1998 | A |
5818781 | Estakhri | Oct 1998 | A |
5822245 | Gupta | Oct 1998 | A |
5822252 | Lee | Oct 1998 | A |
5822781 | Wells | Oct 1998 | A |
5831929 | Manning | Nov 1998 | A |
5835935 | Estakhri | Nov 1998 | A |
5838614 | Estakhri et al. | Nov 1998 | A |
5845313 | Estakhri | Dec 1998 | A |
5847552 | Brown | Dec 1998 | A |
5860083 | Sukegawa | Jan 1999 | A |
5860124 | Matthews | Jan 1999 | A |
5862099 | Gannage | Jan 1999 | A |
5890192 | Lee | Mar 1999 | A |
5901086 | Wang | May 1999 | A |
5901312 | Radko | May 1999 | A |
5907856 | Estakhri | May 1999 | A |
5909586 | Anderson | Jun 1999 | A |
5920884 | Jennings | Jul 1999 | A |
5924113 | Estakhri et al. | Jul 1999 | A |
5928370 | Asnaashari | Jul 1999 | A |
5930815 | Estakhri | Jul 1999 | A |
5933368 | Ma | Aug 1999 | A |
5933846 | Endo | Aug 1999 | A |
5936971 | Harari | Aug 1999 | A |
5937425 | Ban | Aug 1999 | A |
5953737 | Estakhri | Sep 1999 | A |
5956473 | Ma | Sep 1999 | A |
5959926 | Jones | Sep 1999 | A |
5966727 | Nishino | Oct 1999 | A |
5974439 | Bollella | Oct 1999 | A |
5987563 | Itoh | Nov 1999 | A |
5987573 | Hiraka | Nov 1999 | A |
5988933 | Wilhelmstatter | Nov 1999 | A |
5991849 | Yamada | Nov 1999 | A |
6011322 | Stunfall | Jan 2000 | A |
6011323 | Camp | Jan 2000 | A |
6018265 | Keshtbod | Jan 2000 | A |
6021408 | Ledain | Feb 2000 | A |
6026020 | Matsubara | Feb 2000 | A |
6026027 | Terrell | Feb 2000 | A |
6034897 | Estakhri | Mar 2000 | A |
6035357 | Sakaki | Mar 2000 | A |
6040997 | Estakhri | Mar 2000 | A |
6047307 | Radko | Apr 2000 | A |
6047352 | Lakhani | Apr 2000 | A |
6055184 | Acharya | Apr 2000 | A |
6055188 | Takeuchi | Apr 2000 | A |
6069827 | Sinclair | May 2000 | A |
6072796 | Christensen | Jun 2000 | A |
6076137 | Asnaashari | Jun 2000 | A |
6081447 | Lofgren | Jun 2000 | A |
6081878 | Estakhri | Jun 2000 | A |
6084483 | Keshtbod | Jul 2000 | A |
6097666 | Sakui | Aug 2000 | A |
6115785 | Estakhri | Sep 2000 | A |
6122195 | Estakhri | Sep 2000 | A |
6125424 | Komatsu | Sep 2000 | A |
6125435 | Estakhri | Sep 2000 | A |
6128695 | Estakhri | Oct 2000 | A |
6134145 | Wong | Oct 2000 | A |
6134151 | Estakhri | Oct 2000 | A |
6141249 | Estakhri | Oct 2000 | A |
6145051 | Estakhri | Nov 2000 | A |
6151247 | Estakhri | Nov 2000 | A |
6172906 | Estakhri et al. | Jan 2001 | B1 |
6173362 | Yoda | Jan 2001 | B1 |
6181118 | Meehan | Jan 2001 | B1 |
6182162 | Estakhri | Jan 2001 | B1 |
6202138 | Estakhri | Mar 2001 | B1 |
6223308 | Estakhri | Apr 2001 | B1 |
6226708 | McGoldrick | May 2001 | B1 |
6230234 | Estakhri | May 2001 | B1 |
6262918 | Estakhri | Jul 2001 | B1 |
6272610 | Katayama | Aug 2001 | B1 |
6275436 | Tobita et al. | Aug 2001 | B1 |
6279069 | Robinson | Aug 2001 | B1 |
6279114 | Toombs | Aug 2001 | B1 |
6285607 | Sinclair | Sep 2001 | B1 |
6327639 | Asnaashari | Dec 2001 | B1 |
6345367 | Sinclair | Feb 2002 | B1 |
6374337 | Estakhri | Apr 2002 | B1 |
6393513 | Estakhri | May 2002 | B2 |
6397314 | Estakhri | May 2002 | B1 |
6411546 | Estakhri | Jun 2002 | B1 |
6467021 | Sinclair | Oct 2002 | B1 |
6490649 | Sinclair | Dec 2002 | B2 |
6567307 | Estakhri | May 2003 | B1 |
6578127 | Sinclair | Jun 2003 | B1 |
6587382 | Estakhri et al. | Jul 2003 | B1 |
6711059 | Sinclair et al. | Mar 2004 | B2 |
6725321 | Sinclair et al. | Apr 2004 | B1 |
6728851 | Estakhri et al. | Apr 2004 | B1 |
6751155 | Gorobets | Jun 2004 | B2 |
6757800 | Estakhri et al. | Jun 2004 | B1 |
6813678 | Sinclair et al. | Nov 2004 | B1 |
6898662 | Gorobets | May 2005 | B2 |
6912618 | Estakhri et al. | Jun 2005 | B2 |
6950918 | Estakhri | Sep 2005 | B1 |
6957295 | Estakhri | Oct 2005 | B1 |
6973519 | Estakhri et al. | Dec 2005 | B1 |
6978342 | Estakhri et al. | Dec 2005 | B1 |
7000064 | Payne et al. | Feb 2006 | B2 |
20030033471 | Lin | Feb 2003 | A1 |
Number | Date | Country |
---|---|---|
0 557 723 | Jan 1987 | AU |
0 220 718 | May 1987 | EP |
0 243 503 | Nov 1987 | EP |
0 392 895 | Oct 1990 | EP |
0 424 191 | Apr 1991 | EP |
0 489 204 | Jun 1992 | EP |
0 522 780 | Jan 1993 | EP |
0 522 780 | Jan 1993 | EP |
0 544 252 | Jun 1993 | EP |
0 613 151 | Aug 1994 | EP |
0 617 363 | Sep 1994 | EP |
0 619 541 | Oct 1994 | EP |
0 663 636 | Jul 1995 | EP |
0 686 976 | Dec 1995 | EP |
2 304 428 | Mar 1997 | EP |
0 897 579 | Jul 2000 | EP |
0 891 580 | Nov 2000 | EP |
0 896 669 | Nov 2000 | EP |
0 852 766 | May 2001 | EP |
0 852 765 | Sep 2001 | EP |
0 722 585 | May 2002 | EP |
0 910 826 | Jun 2002 | EP |
0 691 008 | Nov 2002 | EP |
0 861 468 | Apr 2003 | EP |
0 978 040 | May 2004 | EP |
1 157 328 | May 2005 | EP |
93 01908 | Aug 1993 | FR |
2 251 323 | Jul 1992 | GB |
2 291 990 | Feb 1996 | GB |
2 291 991 | Jul 1996 | GB |
2 297 637 | Jul 1996 | GB |
2 348 991 | Dec 2002 | GB |
2 351 822 | Jan 2003 | GB |
2 384 337 | Jul 2003 | GB |
2 384 883 | Oct 2005 | GB |
2 384 338 | Nov 2005 | GB |
2 384 072 | Dec 2005 | GB |
2 411 499 | Feb 2006 | GB |
117881 | May 2003 | IS |
3-228377 | Oct 1981 | JP |
59-45695 | Sep 1982 | JP |
58-215794 | Dec 1983 | JP |
58-215795 | Dec 1983 | JP |
59-92483 | May 1984 | JP |
59-162695 | Sep 1984 | JP |
60-212900 | Oct 1985 | JP |
61-96598 | May 1986 | JP |
62-283496 | Dec 1987 | JP |
62-283497 | Dec 1987 | JP |
63-183700 | Jul 1988 | JP |
1-138694 | May 1989 | JP |
4-57295 | Feb 1992 | JP |
4-254994 | Sep 1992 | JP |
4-268284 | Sep 1992 | JP |
4-278297 | Oct 1992 | JP |
4-332999 | Nov 1992 | JP |
5-128877 | May 1993 | JP |
5-282883 | Oct 1993 | JP |
6-4399 | Jan 1994 | JP |
6-36578 | Feb 1994 | JP |
6-124175 | May 1994 | JP |
6-124231 | May 1994 | JP |
6-131889 | May 1994 | JP |
6-132747 | May 1994 | JP |
6-149395 | May 1994 | JP |
6-266596 | Sep 1994 | JP |
7-84871 | Mar 1995 | JP |
7-93499 | Apr 1995 | JP |
7-114499 | May 1995 | JP |
7-141258 | Jun 1995 | JP |
7-235193 | Sep 1995 | JP |
7-311708 | Nov 1995 | JP |
7-334996 | Dec 1995 | JP |
8-18018 | Jan 1996 | JP |
37697 | Feb 1996 | JP |
8-69696 | Mar 1996 | JP |
9-147581 | Jun 1997 | JP |
1388877 | Apr 1988 | SU |
1408439 | Jul 1988 | SU |
1515164 | Oct 1989 | SU |
1541619 | Feb 1990 | SU |
1573458 | Jun 1990 | SU |
1686449 | Oct 1991 | SU |
WO 8400628 | Feb 1984 | WO |
WO 9420906 | Sep 1994 | WO |
Number | Date | Country | |
---|---|---|---|
60359510 | Feb 2002 | US |