Claims
- 1. A blocking device comprising:
multiple interface emulators configured to emulate an interface presented by a storage device and configured to connect to a host; an interface for connecting to a storage device; and a processor coupled to the interface emulators and the interface, the processor examining commands received through the interface emulator that are generated by the host and intended for the storage device, the processor allowing only those of the commands that match a predetermined set of commands to pass to the storage device via the interface, wherein there may be a different predetermined set of commands for each interface emulator, and the blocking device is transparent to normal operation of the host and the storage device.
- 2. The blocking device of claim 1, wherein the commands in the predetermined set of commands are commands recognized by the processor as not modifying a storage state of the storage device.
- 3. The blocking device of claim 1, wherein the interface is an integrated device electronics (IDE) interface for a disk drive.
- 4. The blocking device of claim 1, wherein the processor receives data back from the storage device in response to the commands passed to the storage device and forwards the received data to a host through an interface emulator.
- 5. The blocking device of claim 4, wherein, when the commands include a capabilities request command relating to the storage device, the processor modifies data received from the storage device relating to the capabilities request command to reflect the capability of the storage device as affected by the presence of the blocking device.
- 6. The blocking device of claim 1, wherein the processor drops those of the commands that do not match the predetermined set of commands, and, after dropping one of the commands, returns status information to a host that indicates that the dropped command was successfully completed.
- 7. The blocking device of claim 1, further comprising:
additional interfaces for connecting to additional storage devices.
- 8. The blocking device of claim 7, wherein each of the interfaces is independently coupled to the processor.
- 9. The blocking device of claim 1, further including light emitting diodes (LEDs) coupled to the processor and configured to transmit status information relating to the status of the blocking device.
- 10. The blocking device of claim 1, further including:
a temporary storage device coupled to the processor, the processor storing data from a host corresponding to the dropped commands in the temporary storage device.
- 11. The blocking device of claim 10, wherein when read commands are received from a host that refer to data stored in the temporary storage device, the processor returns the data from the temporary storage device to the host.
- 12. The blocking device of claim 1, further including:
a user configurable memory connected to the processor, the user configurable memory storing instructions that define protected areas on the storage device, the processor dropping or modifying those of the commands that match the predetermined set of commands.
- 13. The blocking device of claim 12, wherein the matching commands are commands that would otherwise modify the protected areas on the storage device.
- 14. The block device of claim 12, wherein the matching commands are commands that would read the protected areas on the storage device.
- 15. The blocking device of claim 12, wherein the user configurable memory stores instructions that define unique protected areas on the storage device for each host.
- 16. The blocking device of claim 1, wherein the processor examines feature information from the storage device that relate to features supported by the storage device and the processor modifies any features not supported by the device before making the feature information available to the host.
- 17. The blocking device of claim 1, wherein the processor supports a removable drive feature set with the host and the processor returns a write protected error code to a host when the processor drops one of the commands.
- 18. A device comprising:
multiple IDE emulator components, an IDE emulator component including a physical interface designed to engage a first cable that connects to a host that controls an IDE storage device; an IDE interface configured to engage a cable that connects to the IDE storage device; and a logic circuit connecting an IDE emulator component to the IDE interface and configured to: compare commands received at the IDE emulator component to a predetermined set of commands, and to block transmission of one or more of the commands from the IDE emulator component to the IDE interface when the comparison indicates that the logic circuit does not recognize the received command or the comparison indicates that the received command is a command that modifies the storage device, wherein the device operates transparently to normal operation of the host and the IDE storage device.
- 19. A device comprising:
multiple emulator components, the emulator component including a physical interface designed to connect to a host that controls a storage device; an interface configured to connect to the storage device; and a logic circuit connecting the emulator components to the interface and configured to compare information received at the emulator component to a computer virus definition file and to block transmission of the information from the emulator component to the interface when the comparison indicates a match with the computer virus definition file, wherein the device operates transparently to normal operation of the host and the storage device.
- 20. A method comprising:
intercepting communications between a computer motherboard and a local non-volatile storage device for the motherboard; comparing commands in the communications between the motherboard and the storage device to a predetermined set of commands; forwarding selected ones of the commands to the storage device based on the comparison; and blocking selected other ones of the commands from being received by the storage device based on the comparison, wherein the intercepting communications, comparing commands, forwarding selected ones of the commands, and blocking selected other ones of the commands is transparent to normal operation of the computer motherboard and the storage device.
- 21. A computer system comprising:
multiple host computers; a long-term storage device; and a blocking device coupled between the host computers and the storage device, the blocking device configured to: intercept commands from the host to the storage device, block certain commands from reaching the storage device, and pass other ones of the commands to the storage device, wherein the intercepting commands, blocking certain commands, and passing other ones of the commands are performed by the blocking device transparently to the host computer and the long-term storage device.
- 22. A blocking device comprising:
means for intercepting communications between multiple hosts and a storage device; means for comparing commands in the communications between a host and the storage device to a predetermined set of commands; means for forwarding selected ones of commands in the intercepted communications to the storage device based on the comparison; and means for blocking selected other ones of the commands from being received by the storage device based on the comparison, wherein the blocking device operates transparently to normal operation of the host and the storage device.
- 23. The blocking device of claim 3, wherein the interface emulator is an IEEE 1394 connection.
RELATED APPLICATIONS
[0001] This application claims priority under 35 U.S.C. § 119 based on U.S. Provisional Application No. 60/443,393, filed Jan. 29, 2003, the disclosure of which is incorporated herein by reference.
[0002] Our invention is an improvement of U.S. patent application Ser. No. 09/961417, filed Apr. 4, 2002, the disclosure of which is incorporated herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60443393 |
Jan 2003 |
US |