Patent ID: 7496492

Claim:
In a physical storage device that has storage capability and a front end capable of receiving communications from a computing system and extracting small computer system interface (SCSI) commands from the communications, a method for the physical storage device emulating one or more storage devices that may respond to the SCSI commands, the method comprising the following: an act of an emulation software component receiving a function call that specifies properties of a storage device to be emulated by the physical storage device, the function call being in a format specified by an application programming interface (API), and the parameters of the function call comprising a boolean value, Create, a property class, Properties, and a device name string, wherein Properties comprises a SCSI vendor ID, a device type, a block size, and a total number of blocks, and wherein the vendor ID and the device type are standard SCSI properties and wherein block size and total number of blocks define the memory configuration of a device to be emulated; in response to having received the function call, an act of the emulation software component establishing a file within the physical storage device, the file having an associated file storage space of at least the size of the emulated storage device, and the file being associated with the emulated storage device in a manner that reserves within the physical storage device the total size of the emulated storage device, the total size being given, at least in part, by the block size and the total number of blocks; an act of the front end receiving a network communication; an act of the front end extracting a SCSI command from the network communication; the front end providing the SCSI command to a queue dedicated to the emulated storage device; an act of the emulation software component taking the SCSI command from the queue; and an act of the emulation software component fulfilling the SCSI command in a manner that emulates fulfillment of the SCSI command on the emulated storage device.