Patent Publication Number: US-7904609-B2

Title: Device and file transfer system

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is based upon and claims priority from Japanese Patent Application No. 2007-224538 filed on Aug. 30, 2007, the entire contents of which are incorporated herein by reference. 
     TECHNICAL FIELD 
     The present invention relates to a device that is capable of functioning as a plurality of devices including at least a “USB storage device” and an “additional device different from the USB storage device”, and to a file transfer system including a device and a computer. 
     BACKGROUND 
     As a USB (Universal Serial Bus) connectable flash memory card reader/writer, a USB storage type (based on the USB Mass Storage Class) is predominantly the mainstream, and there are hardly other types. 
     A USB connectable multi function device having the card reader/writer function and other functions (for example, a multi function device having a printer or scanner function) is also modeled after the stand-alone card reader/writer. 
     For this reason, in most models, the card reader/writer function is recognized by the PC (personal computer) as a USB storage type device. 
     Meanwhile, in a multi function device having the card reader/writer function, if an internal controller of a multi function device and a PC connected to the multi function device simultaneously access the memory card, many problems may occur. 
     Accordingly, in order to resolve these problems, JP-A-2004-94493 describes a technology that enables the internal controller of the multi function device and the PC connected to the multi function device to exclusively access the memory card. 
     However, if the access to the memory card is simply exclusively executed as described above, the memory card tends to be easily occupied by the PC for a comparatively long time. For this reason, the internal controller of the multi function device is liable to go into the situation that cannot access the memory card. Then, a user who frequently uses the multi function device as a stand-alone device may feel inconvenience of using the multi function device. 
     The reason why the PC occupies comparatively long time is that the PC and the internal controller of the multi function device access the memory card by different access methods. The details are as follows. First, an access from the PC to the memory card will be described. When accessing a file on the USB storage device, the PC accesses the memory card through a file system provided therein. 
     At this time, a request to access a physical storage area in the memory card (for example, a request to read data from the physical storage area or a request to write data to the physical storage area) is input from the PC to the multi function device. Meanwhile, no explicit notification indicating that the access from the PC to the memory card is completed is input from the file system provided in the PC. 
     Accordingly, the device can only guess that “if the PC does not access until a predetermined standby time elapses, the access from the PC is recognized as being completed”. As a result, for the standby time, the access authority to the memory card is wastefully occupied by the PC. 
     Next, an access from the internal controller of the multi function device will be described. The internal controller of the multi function device accesses the memory card through a file system provided in the device. 
     At this time, if the access to the memory card by the file system provided in the device is completed, the internal controller of the multi function device can immediately recognize that the access to the memory card is completed. In this case, therefore, unlike the access from the PC, the device does not need to stand by until the standby time elapses, and thus there is no case in which the internal controller of the multi function device wastefully occupies the access authority to the memory card. 
     In this case, it should not be interpreted that the access request from the PC is intentionally preferentially processed. In the event, however, due to the difference in the access method, the occupation time by the PC is likely to be extended, and the internal controller of the multi function device is likely to go into the situation that cannot access the memory card. 
     SUMMARY 
     One aspect of the invention has been conceived in view of the above circumstances and has an object to provide a device which is capable of rapidly processing an access request from an internal controller of the device while an access request is input from a PC and another object to provide a file transfer system comprising such a device. 
     According an aspect of the invention, there is provided a device connectable to a computer through a USB (Universal Serial Bus) interface and is recognized by the computer as a USB multi function device capable of functioning as “a plurality of devices comprising at least a “USB storage device” and an “additional device different from the USB storage device””, the device comprising: a data storage section configured to access a data storable physical storage area, and read data stored in the physical storage area or write data to the physical storage area; a file system configured to manage data to be stored in the physical storage area of the data storage section as a file, provide an interface for accessing to the file, and enable reading of data stored in the file or writing of data to the file by an access with the interface; a data processing section configured to execute a predetermined data processing, and during the data processing, access the file through the file system; a mode switching section configured to switch the device between a first mode in which an access from the computer to the USB storage device is permitted and a second mode in which an access from the computer to the USB storage device is prohibited; a data analysis section configured to, when a data string is transmitted from the computer through a logical data transmission line between the computer and the additional device, analyze whether the data string is a standard data string transmitted for an access to the additional device or a particular data string other than the standard data string; an additional device control section configured to, when the data analysis section analyzes that the data string is the standard data string, control the additional device on the basis of information in the standard data string; a mode determination section configured to, when a data string is transmitted from the computer through a logical data transmission line between the computer and the USB storage device, determine which of the first and second modes is selected by the mode switching section; a physical area unit access section configured to, when the mode determination section determines that the device is switched to the first mode, access the physical storage area of the data storage section based on information in the data string transmitted from the computer to the USB storage device, and transmit a response data corresponding to the access to the computer through the data transmission line; a pseudo response section configured to, when the mode determination section determines that the device is switched to the second mode, transmit a pseudo response to the computer through the data transmission line, the pseudo response indicating that no storage medium is mounted to the data storage section; and a file unit access section configured to, when the data analysis section analyzes that the data string is the particular data string, access a file through the file system based on information in the particular data string, and transmit a response data corresponding to the access to the computer through the data transmission line. 
     According to another aspect of the invention, there is provided a file transfer system, comprising: a computer; and a device connectable to the computer through a USB (Universal Serial Bus) interface and being recognized by the computer as a USB multi function device capable of functioning as “a plurality of devices comprising at least a “USB storage device” and an “additional device different from the USB storage device””, wherein the device comprises: a data storage section configured to access a data storable physical storage area, and read data stored in the physical storage area or write data to the physical storage area; a file system configured to manage data to be stored in the physical storage area of the data storage section as a file, provide an interface for accessing to the file, and enable reading of data stored in the file or writing of data to the file by an access with the interface; a data processing section configured to execute a predetermined data processing, and during the data processing, access the file through the file system; a mode switching section configured to switch the device between a first mode in which an access from the computer to the USB storage device is permitted and a second mode in which an access from the computer to the USB storage device is prohibited; a data analysis section configured to, when a data string is transmitted from the computer through a logical data transmission line between the computer and the additional device, analyze whether the data string is a standard data string transmitted for an access to the additional device or a particular data string other than the standard data string; an additional device control section configured to, when the data analysis section analyzes that the data string is the standard data string, control the additional device on the basis of information in the standard data string; a mode determination section configured to, when a data string is transmitted from the computer through a logical data transmission line between the computer and the USB storage device, determine which of the first and second modes is selected by the mode switching section; a physical area unit access section configured to, when the mode determination section determines that the device is switched to the first mode, access the physical storage area of the data storage section based on information in the data string transmitted from the computer to the USB storage device, and transmit a response data corresponding to the access to the computer through the data transmission line; a pseudo response section configured to, when the mode determination section determines that the device is switched to the second mode, transmit a pseudo response to the computer through the data transmission line, the pseudo response indicating that no storage medium is mounted to the data storage section; and a file unit access section configured to, when the data analysis section analyzes that the data string is the particular data string, access a file through the file system based on information in the particular data string, and transmit a response data corresponding to the access to the computer through the data transmission line, and wherein the computer comprises a server computer that is capable of transmitting a file to a client computer having a client function, and on the basis of an access request from the client computer, the computer is configured to transmit the access request to the file unit access section provided in the device through the data transmission line and to transmit the response data from the device according to the access request to the client computer. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of an entire file transfer system according to a first embodiment of the invention; 
         FIG. 2  is a block diagram showing the internal configuration of a multi function device; 
         FIG. 3  is a block diagram showing the internal configuration of a PC; 
         FIG. 4  is a flowchart of a processing to be executed in an AT command analysis task; 
         FIG. 5  is a flowchart of a first processing to be executed in a physical sector unit input/output task; 
         FIG. 6  is a flowchart of a second processing to be executed in the physical sector unit input/output task; 
         FIG. 7  is an explanatory view of a dialog to be displayed on the PC when no medium is mounted; 
         FIG. 8  is a flowchart of a first processing to be executed in a file unit input/output task; 
         FIG. 9  is a flowchart of a second processing to be executed in the file unit input/output task; 
         FIG. 10  is a flowchart of a processing to be executed in a file system task of the multi function device; 
         FIG. 11  is a flowchart of a processing to be executed in a medium print function of the multi function device; 
         FIG. 12  is a flowchart of a processing to be executed when a FTP server application is activated; 
         FIGS. 13A to 13C  are explanatory views of an icon to be displayed on the PC; 
         FIG. 14  is a flowchart of a switching processing to an FTP mode by the FTP server application; 
         FIG. 15  is a flowchart of a switching processing to a USB mode by the FTP server application; 
         FIG. 16  is a block diagram showing the internal configuration of a PC according to a second embodiment of the invention; and 
         FIGS. 17A and 17B  are explanatory views of an icon to be displayed on the PC according to the second embodiment of the invention. 
     
    
    
     DESCRIPTION 
     Hereinafter, the configurations according to aspects of the invention will be described. 
     According to a first aspect of the invention, there is provided a device connectable to a computer through a USB (Universal Serial Bus) interface and is recognized by the computer as a USB multi function device capable of functioning as “a plurality of devices comprising at least a “USB storage device” and an “additional device different from the USB storage device””, the device comprising: a data storage section configured to access a data storable physical storage area, and read data stored in the physical storage area or write data to the physical storage area; a file system configured to manage data to be stored in the physical storage area of the data storage section as a file, provide an interface for accessing to the file, and enable reading of data stored in the file or writing of data to the file by an access with the interface; a data processing section configured to execute a predetermined data processing, and during the data processing, access the file through the file system; a mode switching section configured to switch the device between a first mode in which an access from the computer to the USB storage device is permitted and a second mode in which an access from the computer to the USB storage device is prohibited; a data analysis section configured to, when a data string is transmitted from the computer through a logical data transmission line between the computer and the additional device, analyze whether the data string is a standard data string transmitted for an access to the additional device or a particular data string other than the standard data string; an additional device control section configured to, when the data analysis section analyzes that the data string is the standard data string, control the additional device on the basis of information in the standard data string; a mode determination section configured to, when a data string is transmitted from the computer through a logical data transmission line between the computer and the USB storage device, determine which of the first and second modes is selected by the mode switching section; a physical area unit access section configured to, when the mode determination section determines that the device is switched to the first mode, access the physical storage area of the data storage section based on information in the data string transmitted from the computer to the USB storage device, and transmit a response data corresponding to the access to the computer through the data transmission line; a pseudo response section configured to, when the mode determination section determines that the device is switched to the second mode, transmit a pseudo response to the computer through the data transmission line, the pseudo response indicating that no storage medium is mounted to the data storage section; and a file unit access section configured to, when the data analysis section analyzes that the data string is the particular data string, access a file through the file system based on information in the particular data string, and transmit a response data corresponding to the access to the computer through the data transmission line. 
     With this device, if the device is connected to the computer through a USB interface, the computer recognizes the device as a USB multi function device, which is capable of functioning as a plurality of devices. 
     As for the plurality of devices, at least two devices of a USB storage device and an additional device different from the USB storage device are recognized. In addition to the two devices, more devices may be recognized (that is, three or more devices may be recognized). 
     When the computer recognizes such a USB multi function device, for data communication with each of the plurality of devices, the computer loads drivers and the like corresponding to the plurality of devices. Then, a logical data transmission line is constituted between the computer and each of the plurality of devices. 
     On this assumption, in the device of the aspects of the invention, by using the data transmission line between the computer and the additional device, a standard data string, which is transmitted for controlling the additional device, and a particular data string other than the standard data string are transmitted. 
     When a standard data string is transmitted, it is handled as data for controlling the additional device. Meanwhile, when a particular data string is transmitted, a uniquely defined processing is executed. Specifically, as one of the uniquely defined processing, an access to a file through a file system in the device is executed on the basis of information in the particular data string. 
     With this configuration, unlike a case where a standard data string is transmitted, by transmitting a particular data string from the computer to the additional device, an access to a file through the file system in the device can be achieved. In addition, the data processing section in the device also accesses a file through the file system in the device when a predetermined data processing is executed. 
     That is, an access request from the computer and an access request from the data processing section in the device are both processed through the file system in the device. Therefore, unlike a usual USB storage device, it is not necessary to stand by for a predetermined standby time so as to determine whether or not an access from the computer is completed, and thus there is no case where the access authority to the data storage section is wastefully occupied the computer. 
     Accordingly, as for the access request from the computer and the access request from the data processing section in the device, immediately after one access request is processed, the other one can be processed. As a result a rapid processing can be achieved. 
     In addition, the device of the aspects of the invention is configured to be switched to one of the first mode in which an access from the computer to the USB storage device is permitted and the second mode in which an access from the computer to the USB storage device is prohibited. 
     When the computer accesses the USB storage device, if the device is switched to the first mode, an access from the computer to the USB storage device is permitted. In this case, the device is operated in the same manner as a usual USB storage device. 
     Meanwhile, when the computer accesses the USB storage device, if the device is switched to the second mode, an access from the computer to the USB storage device is prohibited. In this case, a pseudo response indicating that no storage medium is mounted to the data storage section is transmitted to the computer. 
     By returning such a response, while connection between the computer and the device is maintained, an access from the computer to the USB storage device can be blocked. In this state, in order to achieve an access from the computer to the device, the above-described particular data string is used, and accordingly, the computer can access files in the device through the file system of the device. 
     That is, whichever of the first and second modes is selected, the state where the computer has recognized the device as the USB storage device is maintained. 
     If the device is in the first mode, the device functions as a usual USB storage device, and if the device is in the second mode, the functions as the USB storage device are invalidated, except for a function to return a response indicating that no storage medium is set. Therefore, if the device is in the second mode, the particular data string is available. 
     With this configuration, if the device is switched to the first mode, the device can function as a usual USB storage device. Therefore, many commercially available applications compliant with the USB storage device can be used without any problems. 
     In addition, if the device is switched to the second mode, an access request from the computer and an access request from the data processing section in the device may be both rapidly processed. 
     Therefore, according to a user&#39;s intention, for example, when the function as the USB storage device is emphasized, the device may be switched to the first mode, and when the user wants to rapidly process the function of the data processing section in the device, the device may be switched to the second mode. 
     In addition, whichever of the first and second modes is selected, as the data transmission line between the device and the computer, a single data transmission line based on the USB standard is used. Therefore, communication interfaces do not need to be provided separately for the first mode and the second mode, and accordingly the configuration of the device (particularly, hardware) can be simplified. As a result, the device can be provided at low cost, as compared with communication interfaces are provided separately for the first mode and the second mode. 
     According to a second aspect of the invention, in the device according to the first aspect of the invention, the additional device may be a communication device that is adapted to be controlled by an AT command. In this case, the data analysis section may determine, on the basis of an AT command to be transmitted from the computer through the data transmission line, whether the data string is the particular data string or the standard data string according to whether or not a character string indicating that the data string is the particular data string is included among character strings constituting the AT command. 
     The AT command used herein is a kind of command capable of controlling various functions of the communication device, such as a modem or a terminal adapter. This has been developed by Hayes Corporation in U.S. and widely known and used by other corporations. 
     The AT command is also used to control a communication device (for example, a facsimile machine) comprising a modem or a terminal adapter. In order to control various functions of such a communication device, each of the manufacturers of the communication devices uses the unique AT command expansions. 
     Accordingly, in the device according to the second aspect of the invention, as the AT command expansions, an “AT command comprising a character string indicative of a particular data string has been prepared. Then, when a character string indicative of a particular data string is included in the AT command input from the computer, the data string is identified as the particular data string. Otherwise, the data string is identified as the standard data string. 
     With this configuration, by using the AT command, the computer can assign whether to control the additional device or to perform a file access through the file system in the device. 
     According to a third aspect of the invention, the device according to the first or second aspect of the invention may further comprise a file access request determination section that, when the data analysis section analyzes that the data string is the particular data string, on the basis of information in the particular data string, determines whether or not the particular data string is a data string requesting to access the file. In this case, when the file access request determination section determines that the particular data string is the data string requesting to access the file, the file unit access section may access the file through the file system, and may transmit a response data corresponding to the access to the computer through the data transmission line. 
     With this configuration, as the particular data string, a data string requesting to access a file and other data strings can be used. Therefore, when an access to the file is requested and when other controls are directed to the device, the particular data string becomes available. 
     According to a fourth aspect of the invention, the device according to the third aspect of the invention may further comprise a mode switching request determination section that, when the data analysis section analyzes that the data string is the particular data string, on the basis of information in the particular data string, determines whether or not the particular data string is a data string requesting the mode switching section of mode switching. In this case, when the mode switching request determination section determines that the particular data string is the data string requesting of mode switching, the mode switching section may switch the device to one of the first mode and the second mode on the basis of information in the particular data string. 
     With this configuration, as the particular data string, a data string for requesting to access a file and a data string requesting of mode switching can be used. Therefore, when an access to a file is requested and when the computer requests the device of mode switching, the particular data string becomes available. 
     According to a fifth aspect of the invention, in the device according to any one of the first to fourth aspects of the invention, the device may be a multi function device having at least a printer function and a memory card function, and the data processing section may be adapted to execute a data processing to print an image on the basis of image data read from a file on a memory card, and during the data processing, access the file through the file system. 
     With this device, when the device is switched to the first mode, the device, that is, the multi function device can function as a USB storage device. In addition, when the device is switched to the second mode, while a file access from the computer is permitted (that is, the card reader function is kept to be available), to have a “function to print a file on the memory card” by the data processing section in the device becomes available. 
     According to a sixth aspect of the invention, a file transfer system comprises a computer and the device according to any one of the first to fifth aspects of the invention, the device being connected to the computer through a USB interface. The computer is a server computer that is capable of transmitting a file to a client computer having a client function, and on the basis of an access request from the client computer, the computer is adapted to transmit the access request to the file unit access section provided in the device through the data transmission line and to transmit the response data from the device according to the access request to the client computer. 
     With this file transfer system, the client computer can access a file on the device through the server computer. Therefore, a plurality of client computer can access a file on the device. 
     Next, illustrative embodiments of the invention will be described by way of specific examples. 
     (1) First Embodiment 
     First, a first embodiment will be described. 
     (Configuration of File Transfer System) 
       FIG. 1  is a block diagram of an entire file transfer system according to an embodiment of the invention. 
     The file transfer system primarily includes a multi function device  1  and a PC (Personal Computer)  2 . The multi function device  1  and the PC  2  respectively have USB interfaces, and are connected with each other through a USB-HUB  3  so as to perform data transmission between them. To the USB-HUB  3 , an additional USB device  4  and the like are also connected. 
     The multi function device  1  and the PC  2  respectively have LAN interfaces. The multi function device  1  can perform data transmission with a device connected to a LAN  5  (for example, PC  6 ), and the PC  2  can perform data transmission with a device connected to a LAN  7  (for example, a PC  8 ). 
     In this embodiment, the multi function device  1  is a multi function device having a printer function, a scanner function, a PC-FAX function, and a card reader function. These functions can be controlled by the PC  2 . 
     (Internal Configuration of Multi Function Device) 
       FIG. 2  is a block diagram illustrating the internal configuration of the multi function device  1 . 
     The multi function device  1  includes, as hardware constituting the USB interface, a USB protocol engine  101 , a common control circuit  102 , a printer data input/output circuit  103 , a scanner data input/output circuit  104 , a PC-FAX data input/output circuit  105 , and a card reader data input/output circuit  106 . 
     At the time of data transmission with the PC  2 , data is transmitted according to the communication protocol based on the USB standard under the control of the USB protocol engine  101 . The circuits are configured to perform data transmission with the PC  2  through an end point. 
     Specifically, the common control circuit  102  performs data input/output (two-way communication) with the PC  2  through an end point for protocol transfer (hereinafter, referred to as “EP 0 ”). 
     The printer data input/output circuit  103 , the scanner data input/output circuit  104 , the PC-FAX data input/output circuit  105 , and the card reader data input/output circuit  106  perform data transmission with the PC  2  through an end point for input data and an end point for output data (hereinafter, referred to as “EP 1  to EP 8 ”), respectively. 
     When data is transmitted to the printer data input/output circuit  103 , data is transmitted to a printer input/output task  111 . Data which is transmitted to the printer input/output task  111  is then transmitted to a print control task  113 , and thus printer hardware  115  is controlled by the print control task  113 . 
     When data is transmitted to the scanner data input/output circuit  104 , data is transmitted to the scanner input/output task  121 . Data which is transmitted to the scanner input/output task  121  is then transmitted to a scanner control task  123 , and thus scanner hardware  125  is controlled by the scanner control task  123 . 
     When data is transmitted to the card reader data input/output circuit  106 , data is then transmitted to the SCSI command analysis task  141 . Data which is transmitted to the SCSI command analysis task  141  is subsequently transmitted to the physical sector unit input/output task  143 . The physical sector unit input/output task  143  serves as an example of a physical area unit access section. 
     The physical sector unit input/output task  143  transmits received data to the memory slot control task  145 . This will be described below in detail. Then, the memory slot control task  145  controls the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154 . 
     Each of the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154  allows a memory card to be mounted thereto. These memory card slots  151  to  154  may allow memory cards based on different standards to be mounted thereto, respectively. The first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154  serves as an example of a data storage section. 
     In this embodiment, the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154  are exclusively available. For example, when a memory card is mounted to the first memory slot  151 , other slots are not available until the memory card is removed. 
     When data is transmitted to the PC-FAX data input/output circuit  105 , data is then transmitted to the AT command analysis task  130 . The AT command analysis task  130  distributes data to one of two data processing systems on the basis of information in data. The AT command analysis task  130  serves as an example of a data analysis section. 
     Specifically, data transmitted to the AT command analysis task  130  includes an AT command which is issued by the PC  2 . The AT command analysis task  130  determines a distribution destination of output data from the PC  2  according to whether or not a character string indicative of a particular data string is included among the character strings constituting the AT command. The details of a specific processing to be executed in the AT command analysis task  130  will be described below. 
     When the AT command analysis task  130  distributes data into the PC-FAX input/output task  131  (see  FIG. 2 ), data is then transmitted to the modem control task  133 , such that the modem hardware  135  is controlled by the modem control task  133 . 
     When the AT command analysis task  130  distributes data into the file unit input/output task  161  (see  FIG. 2 ), the file unit input/output task  161  transmits received data to the memory slot control task  145  through the file system task  163 . In addition, a processing for requesting the physical sector unit input/output task  143  of the mode change. The details of the processing will be described below. The file unit input/output task  161  serves as an example of a file unit access section. In addition, the file system task  163  serves as an example of a file system. 
     If data is transmitted from the file unit input/output task  161  to the memory slot control task  145  through the file system task  163 , the memory slot control task  145  also controls the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154 . 
     The multi function device  1  further includes a medium print function  171  and an FTP (File Transfer Protocol) server task  173 . The medium print function  171  and the FTP server task  173  serve as an example of a data processing section, and control a function to be executed by the multi function device  1  as a stand-alone device independently from the PC  2 . 
     Specifically, the medium print function  171  controls a function to read an image file from a memory card mounted to one of the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154 , and to print the image file. 
     When the medium print function  171  reads the image file, similarly to the file unit input/output task  161 , data is transmitted to the memory slot control task  145  through the file system task  163 . Accordingly, an access to the image file is executed. 
     When a device (for example, the PC  6 ) on the LAN  5  to which the multi function device  1  is connected requests an access to a file on a memory card mounted to one of the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154 , the FTP server task  173  processes the access request. 
     When the FTP server task  173  accesses a file, similarly to the file unit input/output task  161 , data is transmitted to the memory slot control task  145  through the file system task  163 . Thus, an access to the file is executed. 
     (Internal Configuration of PC) 
       FIG. 3  is a block diagram illustrating the internal configuration of the PC  2 . 
     In the PC  2 , as the standard functions based on the OS, a USB protocol stack  201 , a USB multi function device driver  202 , a USB storage driver  203 , a SCSI command processor  211 , a removable disk driver  221 , and a file system  231  are operated. 
     In addition, in the PC  2 , as exclusive-use software compliant with the multi function device  1 , a print port driver  223 , a scanner driver  225 , a COM port driver  227 , and a printer driver  261  are operated. 
     Furthermore, in the PC  2 , as applications software using the functions, a printing application  271 , a scanning application  273 , and a PC-FAX application  275  are operated. 
     In this embodiment, as the OS in the PC  2 , Windows (Registered Trademark) is used. Explorer  277 , which is software comes with Windows (Registered Trademark), can operate on the PC  2 . As the OS in the PC  2 , an OS other than Windows (Registered Trademark) may be used insofar as the same functions can be implemented. 
     Furthermore, in the PC  2 , an FTP server application  281  and a TCP/IP protocol  283  are operated. The FTP server application  281  is software that receives an access request from a WEB browser  285  which functions as an FTP client, and issues a file access request to the multi function device  1 . 
     On the PC  2 , a driver  287  of an additional USB device compliant with the additional USB device  4  can be operate. 
     (Outline of Multi Function Device and PC Functions) 
     The multi function device  1  can be switched to one of two modes according to a user&#39;s operation on the PC  2 . 
     One mode is a USB storage mode (corresponding to a first mode; hereinafter, also referred to as “USB mode”). In this mode, an access from the PC  2  to a USB storage device is permitted. 
     In this case, the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154  in the multi function device  1  function in the same manner as a usual USB storage device. 
     The other mode is an FTP server mode (corresponding to a second mode; hereinafter, also referred to as “FTP mode”). In this mode, an access from the PC  2  to a USB storage device is prohibited. 
     In this case, the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154  in the multi function device  1  do not function in the same manner as a usual USB storage device. Specifically, even if a medium is mounted to any one of the memory slots  151  to  154 , and the PC  2  tries to access the medium, the multi function device  1  only returns a response indicating that no medium is mounted. 
     However, when the multi function device  1  is switched to the FTP mode, an application compliant with the FTP mode may access the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154  in the multi function device  1 . 
     Specifically, when an access to one of the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154  is performed, an application compliant with the FTP mode transmits data to a FAX device which is one of the logical units in the multi function device  1 . 
     At this time, a data string sent from the application compliant with the FTP mode is a data string (a particular data string) that is different from a data string (a standard data string), which is transmitted to the multi function device  1  by a usual PC-FAX compliant application (for example, a PC-FAX application  275  shown in  FIG. 3 ). This will be described below in detail. 
     The multi function device  1  analyzes whether a data string transmitted from the PC  2  is a standard data string or a particular data string. If the data string is the standard data string, a processing is executed on the data string as a data string for the FAX device. Specifically, the standard data string is transmitted to the PC-FAX input/output task  131 , such that the PC-FAX function is controlled. 
     In contrast, if the data string is the particular data string, a different processing from the data string for the FAX device is executed, and accordingly an access to each slot is achieved. Specifically, the particular data string is transmitted to the file unit input/output task  161 , such that an access to the medium is executed in file unit through the file system task  163 . 
     In the multi function device  1 , a section for switching the device to one of the modes corresponds to an example of a mode switching section. 
     (Specification and Transmission Method of Standard Data String and Particular Data String) 
     Next, the specification and transmission method of the standard data string and the particular data string will be described. 
     In the multi function device  1 , whether the data string is the standard data string or the particular data string is determined on the basis of the character strings constituting the AT command. 
     The AT command is constituted from the character strings in the format such that the leading end starts with a character string “AT” and the trailing end is delimited with a 2-byte code &lt;0dh&gt;&lt;0ah&gt; (where &lt;0dh&gt; and &lt;0ah&gt; each represent a 1-byte code in hexadecimal, &lt;0dh&gt; is a control code corresponding to carriage return, and &lt;0ah&gt; is a control code corresponding to line feed). 
     The type of a command is defined by a character string subsequent to the character string “AT” at the leading end. If necessary, various kinds of data can be transmitted by subsequent data strings. 
     In the multi function device  1  of this embodiment, when the character string subsequent to the character string “AT” is a character string “+BRFTP”, the data string input from the PC  2  is handed as the particular data string. In addition, when the character string subsequent to the character string “AT” is a character string other than the character string “+BRFTP”, the data string input from the PC  2  is handled as the standard data string. 
     Specifically, when the character string subsequent to the character string “AT” is a character string other than the character string “+BRFTP”, the multi function device  1  processes the data string transmitted from the PC  2  (AT command) as data for a usual FAX device. This processing is a known processing which is the same as the processing to be executed in a FAX device having a PC-FAX function, and thus the description thereof will be omitted here. 
     Meanwhile, when the character string subsequent to the character string “AT” is the character string “+BRFTP”, the multi function device  1  executes a processing peculiar to this embodiment, instead of processing the data string (AT command) transmitted from the PC  2  as the data string for the usual FAX device. 
     In detail, when the character string subsequent to the character string “AT” is the character string “+BRFTP”, several character strings are attached to the character string “+BRFTP”, and then the 2-byte code &lt;0dh&gt;&lt;0ah&gt; representing the trailing end of the AT command is attached to the character strings. Each of several character strings is in the format such that the leading end and the trailing end are delimited with the symbol ““(double quotation mark)”. Therefore, each character string can be extracted laying focus on the symbol “”” in the data string. 
     In this embodiment, the number of character strings is at least one (that is, a first character string) and a maximum of four (that is, first to fourth character strings). The first character string is one of prescribed  8  character strings and represents the details of the command. Specifically, the first character string is one of the character strings of ““modeset””, ““modeget””, ““fopen””, ““fclose””, ““fread””, ““fwrite””, ““fseek””, and ““flist””. 
     Whether or not the second character string and subsequent character strings exist is determined according to which of the 8 character strings the first character string is. The meanings of the second character string and the subsequent character strings also vary according to which of the 8 character strings the first character string is. Specifically, the following 8 AT commands are constituted depending on the first character string. 
     &lt;1. Mode Change Request Command&gt; 
     AT+BRFTP “modeset” “(Mode to be Requested)” &lt;0dh&gt;&lt;0ah&gt; 
     &lt;2. Mode Acquisition Command&gt; 
     AT+BRFTP “modeget” &lt;0dh&gt;&lt;0ah&gt; 
     &lt;3. File Open Command&gt; 
     AT+BRFTP “fopen” “(File Path Name)” “(Open Mode)” &lt;0dh&gt;&lt;0ah&gt; 
     &lt;4. File Close Command&gt; 
     AT+BRFTP “fclose” “(File Handle)” &lt;0dh&gt;&lt;0ah&gt; 
     &lt;5. File Read Command&gt; 
     AT+BRFTP “fread” “(File Handle)” “(Item Size)” “(Maximum Number of Items)” &lt;0dh&gt;&lt;0ah&gt; 
     &lt;6. File Write Command&gt; 
     AT+BRFTP “fwrite” “(File Handle)” “(Item Size)” “(Number of Items)” &lt;0dh&gt;&lt;0ah&gt; 
     &lt;7. File Seek Command&gt; 
     AT+BRFTP “fseek” “(File Handle)” “(Seek Position)” “(Seek Mode)” &lt;0dh&gt;&lt;0ah&gt; 
     &lt;8. File List Acquisition Command&gt; 
     AT+BRFTP “flist” “(List Acquisition Path Name, with Wildcard Equipped)” 0dh&gt;&lt;0ah&gt; 
     Among the 8 AT commands, the second character string and the subsequent character strings represent parameters. For example, when the first character string is “fopen”, the second character string is a file name, and the third character string is an open mode. When the first character string is “fclose”, the second character string is a handle number (numeric value converted into character string). These parameters are based on the standard functions in the C language. 
     When the first character string is “fread” or “fwrite”, after the AT command is transmitted, actual data read from a file or actual data to be written to a file is subsequently transmitted. As for actual data, from whichever of the multi function device  1  and the PC  2  data is transmitted, a data string having the following format is transmitted. 
     &lt;9. Actual Data Transmission Data String&gt; 
     &lt;0dh&gt;&lt;0ah&gt;*Data;Len=(Number of Bytes);&lt;Binary Data&gt;;&lt;0dh&gt;&lt;0ah&gt; 
     In this data string, the character string “*Data” is an identification character string indicative of transmission of binary data, “;” is a symbol representing the delimitation of the data structure, and the character string “Len=” is an identification character string which is described before the data length. “(Number of Bytes)” is the data length of binary data to be transmitted, and described with a character string in decimal or a character string in hexadecimal. 
     “&lt;Binary Data&gt;” represents the entity (actual data part) of binary data to be transmitted, and the data length of “&lt;Binary Data&gt; becomes the size represented by “(Number of Bytes)” which is described before “&lt;Binary Data&gt;”. 
     After the 8 AT commands are transmitted from the PC  2  to the multi function device  1 , and as occasion demands, the actual data transmission data string is transmitted between the multi function device  1  and the PC  2 , a data string having the following format is transmitted, and then the PC  2  receives a status from the multi function device  1 . 
     &lt;10. Status Transmission Data String&gt; 
     &lt;0dh&gt;&lt;0ah&gt;*Stat; “(First Character String)” “(Second Character String)” “(Third Character String)” &lt;0dh&gt;&lt;0ah&gt; 
     In this data string, the character string “*Stat” is an identification character string indicative of transmission of the status, the symbol “;” is a delimitation symbol representing the trailing end of the identification character string, and the symbol “”” is a symbol representing the leading end and trailing end of each character string. The “(First Character String)” is “0” or “1”. Here, “0” represents failure, and “1” represents success. In the “(Second Character String)” and “(Third Character String)” subsequent to the first character string, return data is stored. 
     For example, in case of fopen, if the first character string is “0 (Failure)”, the second character string is none. If the first character string is “1 (Success)”, the second character string is the handle number (numeric value converted into character string). In case of fclose, the second character string is none. 
     That is, when the PC  2  performs any access to the multi function device  1 , first, one of the 8 AT commands is transmitted from the PC  2  to the multi function device  1 . Thereafter, only in case of an AT command accompanied by actual data transmission, data is transmitted by the actual data transmission data string. Then, the status is transmitted from the multi function device  1  to the PC  2 . 
     In such an AT command, the character “|” in the character string with the leading end and trailing end delimitated with the symbol “”” is used as an escape code. Specifically, when “|xx (xx is two digits in hexadecimal)” is described in the character string, 1-byte data defined by two digits in hexadecimal can be embedded in the character string. Therefore, if the character “|” is used, the symbol “”” for delimiting the leading end or trailing end of the character string may be described as part of the character string, and the character “|” as the escape code may be described as part of the character string. 
     (Processing in AT Command Analysis Task) 
     Next, among the processing to be executed in the sections of the multi function device  1 , a processing to be executed in the AT command analysis task  130  of the multi function device  1  will be described with reference to  FIG. 4 . 
     If this processing starts, the multi function device  1  first determines whether or not an AT command is input from the PC  2  (S 105 ). Here, if the AT command is not input from the PC  2  (S 105 ; Not Input), the process returns to S 105 . 
     If the AT command is input from the PC  2  (S  105 : Input), it is determined whether or not the AT command is “AT+BRFTP” (S 110 ). 
     When it is determined in S 110  that the AT command is other than “AT+BRFTP” (S 110 : Other Than AT+BRFTP), the multi function device  1  transmits the AT command to the PC-FAX input/output task  131 , and waits for until the PC-FAX input/output task  131  completes a processing (S 115 ). 
     In S 115 , the AT command which is transmitted from the PC  2  is then transmitted from the AT command analysis task  130  to the PC-FAX input/output task  131 . In S 115 , after the AT command is transmitted to the PC-FAX input/output task  131 , the multi function device  1  waits for until the processing in the PC-FAX input/output task  131  is completed. 
     When the processing in the PC-FAX input/output task  131  is completed, the PC-FAX input/output task  131  returns a response. Therefore, in S 115 , the response from the PC-FAX input/output task  131  is transmitted to the PC  2 , and S 115  is ended. If S 115  is ended, the process returns to S 105 . 
     A detailed description will be given for S 115  by way of a specific example. There is a case where an AT command other than “AT+BRFTP”, for example, an AT command requesting FAX transmission may be transmitted from the PC  2 . In this case, in S 115 , the AT command analysis task  130  transmits the received AT command to the PC-FAX input/output task  131 . 
     At this time, a predetermined processing is executed in the PC-FAX input/output task  131 . Then, information about the execution result of the predetermined processing is returned from the PC-FAX input/output task  131  to the AT command analysis task  130  as a response. 
     In S 115 , the AT command analysis task  130  waits for until the processing in the PC-FAX input/output task  131  is completed. Then, when receiving the response from the PC-FAX input/output task  131 , the AT command analysis task  130  returns the response to the PC  2  as a response to the AT command, and S 111  is ended. 
     That is, when an AT command other than “AT+BRFTP” is input from the PC  2 , the AT command analysis task  130  is interposed between the data transmission line toward the PC  2  and the PC-FAX input/output task  131 , and simply relays data to be exchanged between them. The “predetermined processing” to be executed in the PC-FAX input/output task  131  is the same as a processing to be executed in a general FAX device having a PC-FAX function. 
     Therefore, when a command other than “AT+BRFTP” is input from the PC  2 , the multi function device  1  is operated in the same manner as the general FAX device having a PC-FAX function. The general FAX device in which the PC-FAX function is controlled according to the AT command is well known, and thus a further description of the processing to be executed by such a FAX device will be omitted. 
     Meanwhile, when it is determined in S 110  that the AT command is “AT+BRFTP” (S 110 : AT+BRFTP), the multi function device  1  transmits the AT command to the file unit input/output task  161 , and waits for until a processing in the file unit input/output task  161  is completed (S 120 ) 
     In S 120 , the AT command which is transmitted from the PC  2  is then transmitted from the AT command analysis task  130  to the file unit input/output task  161 . In S 120 , after the AT command is transmitted to the file unit input/output task  161 , the multi function device  1  waits for until the processing in the file unit input/output task  161  is completed. 
     When the processing in the file unit input/output task  161  is completed, the file unit input/output task  161  returns a response. Therefore, in S 120 , the response from the file unit input/output task  161  is transmitted to the PC  2 , and S 120  is ended. If S 120  is ended, the process returns to S 105 . 
     That is, only when the AT command input from the PC  2  is “AT+BRFTP”, the AT command analysis task  130  distributes the data string into the file unit input/output task  161 , while not transmitting the AT command to the PC-FAX input/output task  131 . 
     (Processing in Physical Sector Unit Input/Output Task) 
     Next, a processing to be executed in the physical sector unit input/output task  143  of the multi function device  1  will be described on the basis of  FIGS. 5 and 6 . 
     If this processing starts, the multi function device  1  first determines whether or not a SCSI command is input from the SCSI command analysis task  141  (S 205 ). If a SCSI command is input from the SCSI command analysis task  141  (S 205 : Input), it is determined whether or not the SCSI command is a command which requires an access to a medium (S 210 ). 
     When the SCSI command is the command which requires to access the medium (S 210 : Yes), it is determined whether or not the right of use of the memory slot control task  145  is currently being acquired (S 215 ). The right of use of the memory slot control task  145  is the right that the physical sector unit input/output task  143  and the file system task  163  can exclusively acquire. Only when acquiring the right of use, the physical sector unit input/output task  143  and the file system task  163  can access the memory slot control task  145 . Accordingly, it is configured such that both can simultaneously perform data transmission with respect to the memory slot control task  145 . 
     In S 215 , when it is determined that the right of use of the memory slot control task  145  is not being acquired (S 215 : No), subsequently, it is determined whether or not the current mode is the USB mode (S 220 ). A section for executing S 220  serves as an example of a mode determination section. 
     In S 220 , when the current mode is the USB mode (S 220 : Yes), the right of use of the memory slot control task  145  is acquired (S 225 ). The right of use of the memory slot control task  145  may be successfully acquired or not depending on the conditions. Therefore, if S 225  is ended, it is determined whether or not the right of use of the memory slot control task  145  is successfully acquired (S 230 ). 
     When the right of use is not successfully acquired (S 230 : No), it is considered that the right of use of the memory slot control task  145  is acquired by the file system task  163 . In this case, therefore, as a processing corresponding to the SCSI command transmitted from the SCSI command analysis task  141 , a processing to return only a pseudo response corresponding to a case in which no medium is mounted is executed (S 235 ), and then the process returns to S 205 . A section for executing S 235  serves as an example of a pseudo response section. 
     In S 220 , when the current mode is not the USB mode (S 220 : No), an access to the USB storage device is prohibited. In this case, therefore, the process proceeds to S 235  while skipping S 225  and S 230 . 
     In this case, as a processing corresponding to the SCSI command transmitted from the SCSI command analysis task  141 , a processing to return only a pseudo response corresponding to a case in which no medium is mounted is executed (S 235 ), and then the process returns to S 205 . 
     If the response corresponding to a case in which no medium is mounted is returned to the PC  2 , the PC  2  displays a dialog as shown in  FIG. 7 . Therefore, the user can understand that an access to the USB storage device is impossible. 
     Meanwhile, in S 230 , when the right of use of the memory slot control task  145  is successfully acquired (S 230 : Yes), the process proceeds to S 240 . In S 215 , when it is determined that the right of use of the memory slot control task  145  is currently being acquired (S 215 : Yes), the process also proceeds to S 240 . 
     When the process proceeds to S 240 , a timer until the right is released is cleared (S 240 ), and the SCSI command is executed (S 245 ). In S 245 , a processing corresponding to the SCSI command transmitted from the SCSI command analysis task  141  is executed. 
     Specifically, for example, if the SCSI command is a command requesting to read data from the medium, in S 245 , an instruction command to read data from the medium is transmitted from the physical sector unit input/output task  143  to the memory slot control task  145 . 
     When receiving the instruction, the memory slot control task  145  reads data in physical sector unit from the medium mounted to one of the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154 . 
     Data is then returned from the memory slot control task  145  to the physical sector unit input/output task  143 . Then, the physical sector unit input/output task  143  returns data, which is transmitted from the memory slot control task  145 , to the SCSI command analysis task  141 . 
     When the SCSI command is a command requesting to write data to the medium, in S 245 , an instruction to write data to the medium is transmitted from the physical sector unit input/output task  143  to the memory slot control task  145 . 
     When receiving the instruction, the memory slot control task  145  writes data in physical sector unit to the medium mounted to one of the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154 . 
     Data about the writing result is returned from the memory slot control task  145  to the physical sector unit input/output task  143 . Then, the physical sector unit input/output task  143  returns data, which is transmitted from the memory slot control task  145 , to the SCSI command analysis task  141 . 
     In this way, if S 245  is ended, subsequently, as shown in  FIG. 6 , it is determined whether or not it is currently in a medium lock state (S 250 ). When it is not in the medium lock state (S 250 : No), it is determined whether or not a predetermined right release time elapses (S 255 ). Then, if the predetermined right release time elapses (S 255 : Elapsed), the right of use of the memory slot control task  145  is released (S 260 ). 
     In S 250  to S 260 , the medium lock is set on the basis of an instruction from the PC  2 . Therefore, when it is in the medium lock, the PC  2  may execute a processing on an assumption that the medium is not removed. 
     The predetermined right release time is set to maintain the right of use of the memory slot control task  145  until a predetermined time elapses after the last access request is input from the PC  2 . This is set because, even if the medium lock is released, an access request to the medium may be input from the PC  2  due to delayed write control in the PC  2 . 
     Therefore, in S 250  to S 260 , only when the medium lock is released and the predetermined right release time elapses, the right of use of the memory slot control task  145  is released. 
     Meanwhile, when it is currently in the medium lock state (S 250 : Yes), or when the predetermined right release time does not elapse (S 255 : Not Elapsed), S 260  is skipped, and the right of use of the memory slot control task  145  is maintained. 
     If S 250  to S 260  are ended, the process returns to S 205  (see  FIG. 5 ). 
     The foregoing description is for a processing when it is determined in S 205  that the SCSI command is input. Meanwhile, in S 205 , it may be determined that no SCSI command is input from the SCSI command analysis task  141  (S 205 : Not Input). 
     In this case, the process proceeds to S 265  shown in  FIG. 6 , and it is determined whether or not a mode change request is input from the file unit input/output task  161  (S 265 ). The mode change request is issued during the processing which is executed in the file unit input/output task  161 . This processing will be described below in detail. 
     In S 265 , when it is determined that the mode change request is input (S 265 : Input), it is determined to whether or not the mode change to the USB mode is requested (S 270 ). In S 270 , when the mode change to the USB mode is not requested (S 270 : No), it means that the mode change to the FTP mode is requested. 
     Then, the physical sector unit input/output task  143  determines whether or not the right of use of the memory slot control task  145  is currently being acquired (S 275 ). 
     In S 275 , when the right of use of the memory slot control task  145  is not being acquired (S 275 : No), the mode change to the FTP mode is possible. In addition, in S 270 , when the mode change to the USB mode is requested (S 270 ; Yes), the mode change to the USB mode is possible. 
     In these cases, the mode change is accepted (S 280 ), and the process returns to S 205  (see  FIG. 5 ). Accordingly, the mode change to the FTP mode or the USB mode is executed. 
     Meanwhile, in S 275 , when the right of use of the memory slot control task  145  is being acquired (S 275 : Yes), an access from the PC  2  may be continuously received, and thus the mode change to the FTP mode is impossible. 
     In this case, the mode change is rejected (S 285 ). If S 285  is ended, the process proceeds to S 250 . S 250  and later have already been described, and the description will be omitted here. 
     (Processing in File Unit Input/Output Task) 
     Next, a processing to be executed in the file unit input/output task  161  of the multi function device  1  will be described with reference to  FIGS. 8 and 9 . 
     If this processing starts, the multi function device  1  first determines whether or not an AT command is input from the AT command analysis task  130  (S 305 ). When an AT command is not input from the AT command analysis task  130  (S 305 : Not Input), the process returns to S 305 . 
     When an AT command is input from the AT command analysis task  130  (S 305 : Input), it is determined whether or not the AT command is “AT+BRFTP” (S 310 ). Here, when the AT command is not “AT+BRFTP” (S 310 : No), the process returns to S 305 . 
     When the AT command is “AT+BRFTP” (S 310 : Yes), a group of command character strings which are transmitted from the AT command analysis task  130  are received (S 315 ). Then, on the basis of the first character string among the received character strings, it is determined whether or not the command is a command in which data output successively exists (S 320 ). 
     When it is determined in S 320  that the command is the command in which data output exists (S 320 : Yes), it waits for until “binary data starting with &lt;0dh&gt;&lt;0ah&gt;*Data (&lt;9. Actual Data Transmission Data string&gt;” is input (S 325 : Wait). Then, if “binary data starting with &lt;0dh&gt;&lt;0ah&gt;*Data” is input (S 325 ; Input), data is received (S 330 ), and then the process proceeds to S 335 . 
     When it is determined in S 320  that the command is not the command in which data output exists (S 320 : No), S 325  and S 330  are skipped, and then the process proceeds to S 335 . 
     In this way, when the process proceeds to S 335 , the command of the first character string among the group of character strings is executed (S 335 ). S 335  will be shown in  FIG. 9  in detail. 
     That is, the multi function device  1  first determines the first character string (S 405 ). A section for executing S 405  serves as an example of a file access request determination section and a mode switching request determination section. 
     In S 405 , when the first character string is fopen or fclose (S 405 : fopen/fclose), a function fopen( ) or fclose( ) is called (S 410 ). Accordingly, the file unit input/output task  161  can open or close a file through the file system task  163 . 
     In S 405 , when the first character string is fread or fwrite (S 405 : fread/fwrite), a function fread( ) or fwrite( ) is called (S 415 ). Accordingly, the file unit input/output task  161  can read and write a file through the file system task  163 . 
     In S 405 , when the first character string is modeget (S 405 : modeget), the current mode is acquired (S 420 ). The mode to be acquired in S 420  is one of the USB mode and the FTP mode. 
     In S 405 , when the first character string is modeset (S 405 : modeset), the physical sector unit input/output task  143  is requested for the mode change (S 425 ). A request issued to the physical sector unit input/output task  143  in S 425  is to be determined in S 265 . 
     If S 405  to S 425  are ended, S 335  shown in  FIG. 8  is ended, and subsequently, on the basis of the first character string, it is determined whether or not the command is a command in which data input exists (S 340 ). 
     When it is determined in S 340  that the command is the command in which data input exists (S 340 : Yes), “binary data starting with &lt;0dh&gt;&lt;0ah&gt;*Data (&lt;9. Actual Data Transmission Data string&gt;” is transmitted from the multi function device  1  to the PC  2  (S 350 ), and the process proceeds to S 355 . That is, when data is input from the multi function device  1  to the PC  2 , by a data string having the same format as that when the PC  2  outputs data to the multi function device  1 , actual data is transmitted. 
     When it is determined in S 340  that the command is not the command in which file access data input exists (S 340 : No), S 350  is skipped, and the process proceeds to S 360 . 
     In this way, if the process proceeds to S 360 , a “status starting with &lt;0dh&gt;&lt;0ah&gt;*Stat (&lt;10. Status Transmission Data string&gt;)” is transmitted from the multi function device  1  to the PC  2  (S 360 ). In this case, “OK&lt;0dh&gt;&lt;0ah&gt;” is transmitted from the multi function device  1  to the PC  2 , a response to one AT command is made and the AT command is completed. Then, the process returns to S 305 . 
     (Processing in File System Task of Multi Function Device) 
     Next, a processing to be executed in the file system task  163  of the multi function device  1  will be described with reference to  FIG. 10 . 
     If this processing starts, the multi function device  1  first determines whether or not a file access related request is input from an additional task (S 505 ). Specific examples of the additional task include, for example, the file unit input/output task  161 , the medium print function  171 , and the FTP server task  173 . 
     In addition to these additional tasks, a task that issues a request to the file system task  163  may exist according to the functions installed in the multi function device  1 . 
     In S 505 , when no request is input from the additional task (S 505 : Not Input), the process returns to S 505 . When a request is input from the additional task (S 505 : Yes) and if the request is fopen (S 505 : fopen), it is determined whether or not the right of use of the memory slot control task  145  is currently being acquired (S 510 ). 
     As described above, the right of use of the memory slot control task  145  is the right that can be exclusively acquired by the physical sector unit input/output task  143  and the file system task  163 . 
     When it is determined in S 510  that the right of use of the memory slot control task  145  is not being acquired (S 510 : No), the right of use of the memory slot control task  145  is acquired (S 515 ). The right of use of the memory slot control task  145  may be acquired or not depending on the conditions. 
     When the right of use is successfully acquired (S 515 : Successful) or when the right of use has already been acquired (S 510 : Yes), a file open processing is executed (a handle is created) (S 520 ), and the process returns to S 505 . 
     When the right of use is not successfully acquired (S 555 : Failure), it is considered that the right of use of the memory slot control task  145  is acquired by the physical sector unit input/output task  143 . Therefore, the file is not successfully opened (S 525 ). In this case, no handle is created, and the process returns to S 505 . 
     In S 505 , when the request from the additional task is fread or write (S 505 : fread/fwrite), a handle file is read (S 530 ), and the process returns to S 505 . 
     In S 505 , when the request from the additional task is fclose (S 505 : fclose), a handle close processing is executed (handle is discarded) (S 535 ). Then, it is determined whether or not all handles are discarded (S 540 ). 
     When it is determined in S 540  that all the handles are discarded (S 540 : Yes), the right of use of the memory slot control task  145  is released (S 545 ), and the process returns to S 505 . When it is determined that there is an undiscarded handle (s 540 : No), S 545  is skipped, and the process returns to S 505 . 
     In S 505 , when the request from the additional task is flist (S 505 : flist), it is determined whether or not the right of use of the memory slot control task  145  is currently being acquired (S 550 ). 
     When it is determined in S 550  that the right of use of the memory slot control task  145  is not being acquired (S 550 : No), the right of use of the memory slot control task  145  is acquired (S 555 ). The right of use of the memory slot control task  145  may be acquired or not depending on the conditions. 
     When the right of use is successfully acquired (S 555 : Success) or when the right of use has already been acquired (S 550 : Yes), a file open processing is executed (a handle is created) (S 560 ). 
     Then, a file list is created from a handle folder (S 565 ), and a handle close processing is executed (handle is discarded) (S 535 ). If S 570  is ended, the process proceeds to S 540 . S 540  and later have already been described, and the description will be omitted here. 
     In S 555 , when the right of use is not successfully acquired (S 555 : Failure), a file list in which no file exists is created (S 575 ), and the process returns to S 505 . 
     (Processing in Medium Print Function of Multi Function Device) 
     Next, a processing to be executed in the medium print function  171  of the multi function device  1  will be described with reference to  FIG. 11 . 
     If this processing starts, the multi function device  1  first creates a file list in a root directory of the card (S 605 ). In S 605 , by calling a function flist( ), an access to a file on the memory card is executed through the medium print function  171 . 
     Next, on the basis of the file list in the root directory, it is determined whether or not a subdirectory exists. When a subdirectory exists, as for the subdirectory, a file list is created (S 610 ). In S 610 , by calling the function flist( ), an access to a file on the memory card is executed through the medium print function  171 . S 610  is executed on all the subdirectories. 
     Next, an image file is extracted from the file list obtained in S 605  and S 610  (S 615 ), and it is determined whether or one or more image files are extracted (S 620 ). When no image file exists (S 620 : Absence), a message, “No image file exists in the card” is displayed on the display section of the multi function device  1  (S 625 ), and the processing shown in  FIG. 11  is ended. 
     When it is determined in S 620  that one or more image files exist (S 620 : Presence), the thumbnails of the image files are created (S 630 ). In S 630 , the functions fopen( ), fread( ), and fclose( ) are called, and an access to a file on the memory card (read the image file) is executed through the medium print function  171 . Then, the read image file is thumbnailed. 
     Next, an image file in the card is displayed on the display section of the multi function device  1  (S 635 ). In S 635 , the file name of the image file and the thumbnail created in S 630  are displayed in pair on the display section of the multi function device  1 . 
     Thereafter, the multi function device  1  waits for the user&#39; input, and at this time, the user can select an image file to be printed (S 640 ). In this state, when the user makes a cancel operation (S 640 : Cancel), the processing shown in  FIG. 11  is ended. 
     In S 640 , when the user selects an image file and inputs an instruction to start printing (S 640 : Selection and Print Start), the multi function device  1  reads the image file to be printed (S 645 ). In S 645 , the functions fopen( ), fread( ), and fclose( ) are called, and an access to a file on the memory card (read the image file) is executed through the medium print function  171 . 
     Then, the image file read from the card is printed (S 650 ), and the processing shown in  FIG. 11  is ended. 
     (Processing to be Executed when FTP Server Application Serving as PC is Activated) 
     Next, a processing to be executed when the FTP server application  281  serving as the PC  2  is activated will be described with reference to  FIG. 12 . 
     The FTP server application  281  may be activated with any timing, but when the function can be constantly used, it may be set to be activated when the PC  2  is activated. 
     If the FTP server application  281  is activated, and this processing starts, the PC  2  executes modeget (S 705 ). Specifically, “AT+BRFTP “modeget” &lt;0dh&gt;&lt;0ah&gt;” which is &lt;2. Mode Acquisition Command&gt; is issued by the AT command, and thus the multi function device  1  is requested to execute the modeget command. 
     If the request to execute the modeget command is transmitted to the multi function device  1 , the AT command analysis task  130  distributes the AT command into the file unit input/output task  161  by the processing shown in  FIG. 4 . Next, the file unit input/output task  161  executes a processing (see S 420 ) corresponding to modeget by the processing shown in  FIGS. 8 and 9 . 
     Next, in S 360 , the current mode of the multi function device  1  is transmitted to the PC  2 . As a result, the PC  2  acquires the current mode of the multi function device  1 . 
     In this way, if the mode of the multi function device  1  is acquired, the mode is stored (S 710 ) and it is determined whether or not the mode change to the FTP mode is set when the FTP server application is activated (S 715 ). The user may arbitrarily set whether or not to switch the device to the FTP mode when the FTP server application is activated. How the mode change is set is stored in a setup file for the FTP server application. 
     When the mode change to the FTP mode is set (S 715 : Yes), it is determined whether or not the current mode of the multi function device  1  (the mode acquired in S 705  and stored in S 710 ) is the FTP mode (S 720 ). 
     When the current mode is not the FTP mode (S 720 : No), the PC  2  executes modeset (S 725 ). Specifically, “AT+BRFTP “modeset” “(Mode to be Requested=FTP Mode)” &lt;0dh&gt;&lt;0ah&gt;” which is &lt;1. Mode Change Request Command&gt; is issued by the AT command, and thus the multi function device  1  is requested to execute the modeset command. 
     If the request to execute the modeset command is transmitted to the multi function device  1 , the AT command analysis task  130  distributes the AT command into the file unit input/output task  161  by the processing shown in  FIG. 4 . Next, the file unit input/output task  161  executes a processing (see S 425 ) corresponding to modeset by the processing shown in  FIGS. 8 and 9 . Therefore, S 270  to S 285  are executed in the physical sector unit input/output task  143 . 
     In S 360 , information about whether or not the mode change is successful is transmitted to the PC  2 . 
     As a result, the PC  2  acquires the information about whether or not the mode change is successful. 
     Next, the PC  2  determines whether or not the mode change is successful (S 730 ). When the mode change is successful (S 730 : Yes), the FTP mode is stored as the current mode of the multi function device  1  (S 735 ), and the process proceeds to S 740 . 
     When it is determined in S 715  that the mode change to the FTP mode is not set (S 715 : No) or when it is determined in S 720  that the current mode is the FTP mode (S 720 : Yes), it is not necessary to perform the mode change. In this case, therefore, S 725  to S 735  are skipped, and the process proceeds to S 740 . 
     In S 730 , when the mode change is failed (S 730 : No), a failure in the mode change is displayed for a predetermined time (S 737 ), and then the process proceeds to S 740 . 
     If the process proceeds to S 740 , a task tray icon based on the current mode of the multi function device  1  is determined (S 740 ), an FTP server thread is activated, and a FTP server port of the TCP/IP is opened (S 745 ). Thus, the processing shown in  FIG. 12  is ended. 
     In this way, if the processing shown in  FIG. 12  is ended, the current mode of the multi function device  1  is displayed in a task tray (an information notification region based on the standard of Windows (Registered Trademark) serving as the OS) on the display section of the PC  2  as indicated by an icon in  FIG. 13A  or  13 B. 
     If this icon is clicked by a pointing device, as shown in  FIG. 13C , a popup window is displayed. In the popup window, a mode list and an item for instructing to end an application are displayed. Here, by clicking one of these items with the pointing device, the user can instruct the FTP server application  281  to switch the mode or to end the application. 
     A processing to be executed by the FTP server application  281  when the user instructs the mode change will be described below. 
     (Switching Processing to FTP Mode by FTP Server Application) 
     Next, a processing to be executed by the FTP server application  281  when the user instructs the FTP server application  281  to switch the multi function device to the FTP mode will be described with reference to  FIG. 14 . 
     If this processing starts, the PC  2  first determines whether or not the current mode of the multi function device  1  is the FTP mode (S 805 ). When the current mode is the FTP mode (S 805 : Yes), it is not necessary to perform the mode change, and thus the processing shown in  FIG. 14  is ended. 
     In S 805 , when the current mode is not the FTP mode (S 805 : No), the PC  2  executes modeset (S 810 ). Specifically, “AT+BRFTP “modeset” “(Mode to be Requested=FTP Mode)” &lt;0dh&gt;&lt;0ah&gt;” which is &lt;1. Mode Change Request Command&gt; is issued by the AT command, and thus the multi function device  1  is requested to execute the modeset command. 
     If S 810  is ended, the PC  2  determines whether or not the mode change is successful (S 815 ). When the mode change is successful (S 815 : Yes), the current mode of the multi function device  1  is stored as the FTP mode (S 820 ), and the task tray icon is changed according to the current mode of the multi function device  1  (S 825 ). Thus, the processing shown in  FIG. 14  is ended. 
     When it is determined in S 815  that the mode change is failed (S 815 : No), the PC  2  displays a dialog indicative of a failure in the mode change (S 830 ). Thus, the processing shown in  FIG. 14  is ended. 
     (Switching Processing to USB Mode by FTP Server Application) 
     Next, a processing to be executed by the FTP server application  281  when the user instructs the FTP server application  281  to switch the multi function device to the USB mode will be described with reference to  FIG. 15 . 
     If this processing starts, the PC  2  first determines whether or not the current mode of the multi function device  1  is the USB mode (S 905 ). When the current mode is the USB mode (S 905 : Yes), it is not necessary to perform the mode change, and thus the processing shown in  FIG. 15  is ended. 
     In S 905 , when the current mode is not the USB mode (S 905 : No), it is determined whether or not a file is currently being transferred through the FTP server (S 910 ). When a file is being transferred through the FTP server (S 910 : Yes), a dialog is displayed (S 915 ). 
     In this dialog, a message, “A file is currently being transferred through the FTP server. If the multi function device  1  is switched, transfer is interrupted due to an error. Still, you want to switch the mode?”. To this message, the user can select one of “Yes” and “No”. 
     When the user selects “No” (S 915 : No), the processing shown in  FIG. 15  is ended. When the user selects “Yes” (S 915 : Yes), the process proceeds to S 920 . In addition, when it is determined in S 910  that no file is being transferred through the FTP server (S 910 : No), S 915  is skipped, and then the process proceeds to S 920 . 
     In this way, if the process proceeds to S 920 , the PC  2  executes modeset (S 920 ). Specifically, “AT+BRFTP “modeset” “(Mode to be Requested=USB Mode)” &lt;0dh&gt;&lt;0ah&gt;” which is &lt;1. Mode Change Request Command&gt;” is issued by the AT command, and thus the multi function device  1  is requested to execute the modeset command. 
     If S 920  is ended, the PC  2  determines whether or not the mode change is successful (S 925 ). When the mode change is successful (S 925 : Yes), the USB mode is stored as the current mode of the multi function device  1  (S 930 ), a task tray icon is changed according to the current mode of the multi function device  1  (S 935 ), and the processing shown in  FIG. 15  is ended. 
     When it is determined in S 925  that the mode change is failed (S 925 : No), the PC  2  displays a dialog indicative of a failure in the mode change (S 940 ), and the processing shown in  FIG. 15  is ended. 
     Advantage of First Embodiment 
     As described above, according to the multi function device  1 , the multi function device  1  is switched between the USB mode and the FTP mode according to the instruction from the PC  2 . Then, when the multi function device  1  is switched to the USB mode, the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154  in the multi function device  1  can be recognized and used by the PC  2  as a USB storage device. 
     Therefore, various applications compliant with the USB storage device can access the files on the card mounted to the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154 . 
     In addition, when the multi function device  1  is switched to the FTP mode, an exclusive-use application compliant with the multi function device  1  (for example, the FTP server application  281 ) can access the files on the card mounted to the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154 . 
     Furthermore, the exclusive-use application compliant with the multi function device  1  (for example, the FTP server application  281 ) accesses the files on the card through the file system task  163  of the multi function device  1 , thereby performing an access in file unit. 
     That is, unlike various applications compliant with the USB storage device, which access the files on the card through the file system  231  of the PC  2 , the FTP server application  281  does not access the files on the card in physical sector unit. 
     In such an FTP server application  281 , the multi function device  1  can manage file access start (fopen) and access end (fclose). For this reason, the FTP server application  281  can perform file access through the file system task  163  on even ground with the above-described medium print function  171  or the like. Then, if file access is ended, the file system task  163  may immediately release the right of use of the memory slot control task  145 . 
     For this reason, unlike the USB storage device that uses the physical sector unit input/output task  143 , there is no case in which it takes a lot of time to release the right of use of the memory slot control task  145  due to S 250  and S 255 , and thus a wasteful occupation time of the memory slot control task  145  can be reduced. 
     Therefore, as for the access request from the PC  2  and the access request from a data processing section in the device (the media print function  171  or the FTP server task  173 ), immediately after one access request is processed, the other one can be processed. As a result, a rapid processing can be achieved. 
     Furthermore, even if the access request from the PC  2  and the access request from the data processing section in the device are simultaneously generated, these requests are both managed and processed by the file system task  163  in the device. 
     For this reason, unlike a case in which input/output in physical sector unit and input/output through the file system task are simultaneously generated, even if a plurality of access requests are generated, there is no problem. These requests may be processed seemingly simultaneously or in parallel under the control of the file system task  163 . 
     Therefore, as described above, if the access request from the PC  2  and the access request from the data processing section in the device are configured to be both managed by the file system task  163 , there is no case in which the medium print function  171  or the FTP server task  173  stands by due to the access request from the PC  2 . As a result, there is a high possibility that the medium print function  171  or the FTP server task  173  accesses the files on the card mounted to the first memory slot  151 , the second memory slot  152 , the third memory slot  153 , and the fourth memory slot  154 . 
     Furthermore, even if the multi function device  1  is switched to one of the USB mode and the FTP mode, the PC  2  can access the multi function device  1  through a single USB interface. 
     Therefore, exclusive-use communication interfaces do not need to be provided separately for the USB mode and the FTP mode. As a result, hardware for a communication interface required in the multi function device  1  or the PC  2  can be reduced, and thus hardware can be simplified. 
     (2) Second Embodiment 
     Next, a second embodiment will be described. 
     In the second embodiment, instead of the FTP server in the first embodiment, a server application other than the FTP service is used. 
     That is, in the foregoing embodiment, the FTP server application  281  is provided in the PC  2  to function as the FTP server, and accesses the files in the multi function device  1  according to the request from the FTP client, but a protocol other than the FTP protocol may be used insofar as a file can be transmitted. 
     For example, instead of the FTP server, an HTTP (HyperText Transfer Protocol) server or a CIFS (Common Internet File System) server may be used. Hereinafter, a case in which a CIFS server is used will be described. 
     When the CIFS server is used, as shown in  FIG. 16 , a CIFS server application  291 , instead of the FTP server application  281 , is provided in the PC  2 . Then, an access to the CIFS server application  291  is performed by using a CIFS client (for example, an explorer  293 ) on the client computer through a TCP/IP protocol  283 , while passing through a file system  295 , a Microsoft (Registered Trademark) network client  297 . 
     The CIFS server application  291  is provided with a “file access function to the multi function device  1 ”, like the FTP server application  281 . Accordingly, the CIFS server application  291  can access the files in the multi function device  1  according to a request from the CIFS client. With this configuration, the same advantages as the above-described first embodiment can be obtained. 
     In the second embodiment, the CIFS server, instead of the FTP server, is used, but if necessary, both the FTP server and the CIFS server may be used. In this case, in addition to the USB mode and the FTP mode in the first embodiment, a CIFS mode is further provided. 
     Similarly to the foregoing embodiment, these modes may be displayed on the display section of the PC  2  by icons. Specifically, when the multi function device  1  is in the CIFS mode, as shown in  FIG. 17A , the current mode of the multi function device  1  may also be displayed on the display section of the PC  2 . 
     Similarly to the foregoing embodiment, if this icon is clicked by the pointing device, as shown in  FIG. 17B , a popup window may be displayed. In addition, similarly to the foregoing embodiment, the user may instruct the mode change or application end by a click operation. 
     (3) Modifications 
     Although the embodiments of the invention have been described, the invention is not limited to the embodiments, and various changes and modifications may be made, 
     In the first and second embodiments, as an example of a device which is recognized by the PC  2  as a USB multi function device, the multi function device  1  is illustrated. However, the invention may be applied to a USB multi function device that has functions different from those of the multi function device  1  insofar as it is a USB multi function device which is capable of functioning “a plurality of devices including at least a “USB storage device” and an “additional device different from the USB storage device””. 
     In the first and second embodiments, as a specific example of a device which is recognized as a USB multi function device when being connected to the PC, the multi function device is illustrated. However, the invention may be applied to a USB multi function device having functions other than the illustrated functions. 
     In the first embodiment, the FTP server application  281  issues an access request when the multi function device  1  is in the FTP mode, and does not issue an access request when the multi function device  1  is in the USB mode, but alternatives may be considered. 
     For example, the FTP server application  281  may issue an access request, and the multi function device  1  may return an access rejection response. In this case, as an example of the access rejection response, a response indicating that no medium is loaded may be considered. 
     In the first embodiment, a device which is recognized as a USB storage device is the multi function device  1  to which a removable medium can be mounted. According to the invention, however, a device which is recognized as a USB storage device is not necessarily adapted to mount a removable medium thereto. 
     Specifically, a device including the internal flash memory which can not be removed from the device may be used. In the embodiments, the internal flash memory may be removably mounted to the MP3 player  40  or not. 
     In the first embodiment, the WEB browser  285  serving as the FTP client and the FTP server application  281  are installed in the same PC  2 , but they may be installed in different PCs which are communicable through a IAN. 
     That is, if a client computer including the WEB browser  285  serving as the FTP client and a server computer including the FTP server application  281  are communicable through a logical data transmission line according to the TCP/IP, they may be physically the same PC or different PCs. The same is applied to a case in which HTTP or CIFS, instead of FTP, is used.