Patent Publication Number: US-2022217246-A1

Title: Image forming apparatus having port to which portable memory is attachable

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims priority under 35 U.S.C. § 119 from Japanese Patent Application No. 2021-000478 filed on Jan. 5, 2021. The entire subject matter of the application is incorporated herein by reference. 
     BACKGROUND 
     An image forming apparatus has been known that is configured to store print data according to received job data in a portable memory connected with the image forming apparatus and to perform printing based on the print data in response to an operation received via a user interface. Specifically, when the job data contains information specifying the portable memory as a storage destination, a controller of the image forming apparatus generates the print data from the job data and stores the generated print data in the portable memory. 
     SUMMARY 
     With respect to the known image forming apparatus, there is no sufficient disclosure about a configuration thereof with a plurality of ports to which a portable memory is removably attachable. Moreover, there is no sufficient disclosure regarding how to distinguish between a portable memory for storing print data and the other portable memories. Specifically, for instance, there is no sufficient disclosure regarding a process by the image forming apparatus to determine whether a portable memory attached to one of the plurality of ports is for storing print data. 
     Aspects of the present disclosure are advantageous to provide one or more improved techniques to improve user-friendliness of an image forming apparatus having a port to which a portable memory is removably attachable. 
     According to aspects of the present disclosure, an image forming apparatus is provided, which includes a print engine, a user interface, a memory interface having a port configured to receive a portable memory removably attached thereto, and a controller. The controller is configured to perform a storage printing process. The controller is further configured to, prior to the storage printing process, store identification information in a portable memory attached to the port, thereby setting the portable memory as the dedicated memory. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a top view of a multi-function peripheral (hereinafter referred to as an “MFP”), according to one or more aspects of the present disclosure. 
         FIG. 2  is a block diagram showing a configuration of the MFP according to one or more aspects of the present disclosure. 
         FIGS. 3A to 3C  are flowcharts showing a procedure of a process to set a storage destination for print data, according to one or more aspects of the present disclosure. 
         FIG. 4  shows an example of a standby screen displayed on the MFP, according to one or more aspects of the present disclosure. 
         FIG. 5  shows an example of a storage destination setting screen displayed on the MFP, according to one or more aspects of the present disclosure. 
         FIGS. 6A to 6C  are flowcharts showing a procedure of a process to be performed by the MFP in response to a USB memory being attached to a port of the MFP, according to one or more aspects of the present disclosure. 
         FIG. 7  shows an example of a notification screen displayed on the MFP, according to one or more aspects of the present disclosure. 
         FIG. 8  shows another example of the storage destination setting screen displayed on the MFP, according to one or more aspects of the present disclosure. 
         FIG. 9  shows an example of a function display screen displayed on the MFP, according to one or more aspects of the present disclosure. 
         FIG. 10  shows another example of the function display screen displayed on the MFP, according to one or more aspects of the present disclosure. 
         FIG. 11  shows an example of a warning screen displayed on the MFP, according to one or more aspects of the present disclosure. 
         FIG. 12  is a flowchart showing a procedure of a process to store print data among processes pertaining to a storage printing function, according to one or more aspects of the present disclosure. 
         FIGS. 13A and 13B  are flowcharts showing a procedure of a process to print the print data among the processes pertaining to the storage printing function, according to one or more aspects of the present disclosure. 
         FIG. 14  shows an example of a confirmation screen displayed on the MFP, according to one or more aspects of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     It is noted that various connections are set forth between elements in the following description. It is noted that these connections in general and, unless specified otherwise, may be direct or indirect and that this specification is not intended to be limiting in this respect. Aspects of the present disclosure may be implemented on circuits (such as application specific integrated circuits) or in computer software as programs storable on computer-readable media including but not limited to RAMs, ROMs, flash memories, EEPROMs, CD-media, DVD-media, temporary storage, hard disk drives, floppy drives, permanent storage, and the like. 
     An illustrative embodiment according to aspects of the present disclosure will be described with reference to the accompanying drawings.  FIG. 1  is a top view of an MFP (“MFP” is an abbreviation for “Multi-Function Peripheral”)  10  as an example of an image forming apparatus in the illustrative embodiment according to aspects of the present disclosure.  FIG. 2  is a block diagram showing an electrical configuration of the MFP  10 . The MFP  10  shown in  FIGS. 1 and 2  is connected with a network  200 , and is communicable with a PC  24  via the network  200 . The MFP  10  may be connected with the network  200  (e.g., the Internet) in a wireless or wired manner. Examples of the network  200  may include, but are not limited to, the Internet, a LAN, and a USB (“USB” is an abbreviation for “Universal Serial Bus”) wired connection between the MFP  10  and the PC  24 . 
     As shown in  FIG. 2 , the MFP  10  includes memory I/Fs (“I/F” is an abbreviation for “interface”)  11 ,  12 , a controller  13 , an internal memory  14 , a print engine  15 , a scan engine  16 , a user I/F  17 , a communication I/F  18 , a fax engine  19 , and a bus  20 . These elements included in the MFP  10  are communicably interconnected via the bus  20 . 
     The user I/F  17  is an interface that intervenes between a user who directly operates the MFP  10  and the controller  13 . The user I/F  17  includes, for instance, a touch panel, and operable keys as physical keys. The communication I/F  18  is an interface for connecting the MFP  10  with the network  200 . The print engine  15  is configured to print an image on a recording medium such as a sheet or a disk. Applicable recording methods for the print engine  15  may include, but are not limited to, an inkjet method, and an electrophotographic method. The MFP  10  may be configured to perform a combined operation as a combination of a plurality of operations. 
     The memory I/Fs  11  and  12  are interfaces configured to perform communication compliant with USB specifications. The memory I/Fs  11  and  12  have ports  21  and  22  to which a USB memory  23  is removably attachable, respectively. The USB specifications applicable in the illustrative embodiment may include, but are not limited to, USB 2.0 and USB 3.0. The USB memory  23  is a portable memory configured to be removably attached to the MFP  10  via a port. Examples of the USB memory  23  may include, but are not limited to, a USB-connectable HDD, and a memory card configured to communicate with the MFP  10  via a USB-connectable card reader. At least one of the memory I/Fs  11  and  12  may have, as a port, a card slot to which a memory card is removably attachable. 
     As shown in  FIG. 1 , the port  22  of the memory I/F  12  is located at a front section  41  where the user I/F  17  is disposed, of a housing  40  of the MFP  10 . Specifically, when a side of the housing  40  on which the user I/F  17  is disposed is defined as a front side of the housing  40 , the front section  41  is a section that includes the said front side and front-side portions of the left and right sides of the housing  40 . Further specifically, the front section  41  may be defined as a section where the user I/F  17  is disposed when the housing  40  is divided into two equal sections in a front-to-rear direction. Moreover, when the housing  40  is regarded substantially as a cube, the front section  41  may be defined as a section that includes a front surface portion of the cube at which the user I/F  17  is disposed, and left-side and right-side portions in contact with the front surface portion of the cube. In other words, the front section  41  is such a section that it is easy for the user, who is in a position to face the user I/F  17 , to visually recognize that the USB memory  23  is attached to the port  22  disposed at that section. In the illustrative embodiment, the port  22  is disposed at a left-side portion of the front section  41 . The port  21  of the memory I/F  11  is disposed at a rear section  42  that is located opposite to the front section  41  in the front-to-rear direction of the housing  40 . Specifically, the rear section  42  may be defined as a section where the user I/F  17  is not disposed when the housing  40  is divided into two equal sections in the front-to-rear direction. Moreover, the rear section  42  may be defined as a section that includes a rear surface portion which is located opposite to the front surface portion in the front-to-rear direction of the housing  40 , and a part of the housing  40  not included in the left-side and right-side portions of the front section  41  that are in contact with the front surface portion. In other words, the rear section  42  is such a section that it is difficult for the user, who is in the position to face the user I/F  17 , to visually recognize that the USB memory  23  is attached to the port  21  disposed at that section. 
     The print engine  15  is configured to discharge a printed sheet with an image formed thereon, in a discharge direction (specifically, in the frontward direction) along the front-to-rear direction shown in  FIG. 1 . Namely, the front side is a discharge side toward which the printed sheet is discharged. Further, in this case, the front section  41  may be defined as a half section of the housing  40  that is located on the discharge side in the discharge direction for the printed sheet. However, it is noted that the MFP  10  may be configured to change a setting for the discharge direction. Specifically, when the setting for the discharge direction is changed, a printed sheet with an image formed thereon by the print engine  15  may be discharged in the rearward direction along the front-to-rear direction. In this case, a rear cover (not shown) of the rear section  42  may be opened to discharge the printed sheet rearward. When the MFP  10  is set to discharge the printed sheet frontward, and the USB memory  23  is attached to the port  21  of the memory I/F  11  of the rear section  42 , the USB memory  23  protrudes rearward from the housing  40 . Namely, the memory I/F  11  is configured in such a manner that the USB memory  23 , when attached to the port  21 , protrudes from the housing  40  in a direction opposite to the discharge direction (i.e., the frontward direction). In another instance, the memory I/F  11  may be configured in such a manner that the USB memory  23 , when attached to the port  21 , protrudes from the housing  40  in a direction orthogonal to the discharge direction. In this case, when the housing  40  is divided into two equal sections in the left-to-right direction, the port  21  of the memory I/F  11  may be disposed at one section (e.g., a right section), of the two equal sections, which is located opposite in the left-to-right direction to the other section (e.g., a left section) where the port  22  of the memory I/F  12  is disposed. Further, the port  21  of the memory I/F  11  may be disposed at one section (e.g., the right section), of the two equal sections, which is located opposite to the other section (e.g., the left section) where the user I/F  17  having the touch panel is disposed, in the left-to-right direction. 
     The scan engine  16  is configured to convey a document sheet to be scanned, in a conveyance direction along the left-to-right direction. When viewed from the top of the housing  40 , the scan engine  16  is located shifted toward the rear section  42  rather than the front section  41  relative to a center line of the housing  40  in the front-to-rear direction, which is orthogonal to the conveyance direction for the document sheet to be scanned. In this case, when viewed from the top of the housing  40 , the port  21  of the memory I/F  11  is disposed at the rear section  42  toward which the scan engine  16  is shifted relative to the center line of the housing  40  in the front-to-rear direction. 
     The MFP  10  includes a sheet tray (not shown) configured to support one or more sheets placed thereon that are used for printing by the print engine  15 . The sheet tray is configured to be pulled out in a pull-out direction (specifically, in the frontward direction) along the front-to-rear direction, to supply sheets. In this case, the port  21  of the memory I/F  11  is disposed at the rear section  42  that is located opposite to the front section  41  in the pull-out direction for the sheet tray. 
     The MFP  10  includes a front cover (not shown) disposed at the front section  41 . The front cover is configured to be opened frontward for replacement of a toner cartridge for storing toner used for printing by the print engine  15 . The toner cartridge to be replaced is withdrawn in a withdrawal direction (specifically, in the frontward direction) along the front-to-rear direction out of the housing  40  with the front cover being open. In this case, the port  21  of the memory I/F  11  is disposed at the rear section  42  that is located opposite to the front section  41  in the withdrawal direction in which the toner cartridge to be replaced is withdrawn. 
     The controller  13  may include at least one of processors such as a CPU and an ASIC (“ASIC” is an abbreviation for “Application Specific Integrated Circuit”). The internal memory  14  may include at least one of storage devices such as a RAM, a ROM, an SSD, and an HDD. The internal memory  14  may include a buffer of the controller  13  that is used in executing computer programs. The internal memory  14  may include a non-transitory computer-readable storage medium. Examples of the non-transitory computer-readable storage medium may include, but are not limited to, recording media such as a CD-ROM and a DVD-ROM, as well as the aforementioned various types of storages. Moreover, the non-transitory computer-readable storage medium is a tangible medium. On the other hand, an electrical signal carrying a program downloaded, e.g., from a server on the Internet, is a computer-readable signal medium, but is not included in the examples of the non-transitory computer-readable storage medium. 
     The internal memory  14  stores programs  14   a  executable by the controller  13 . The illustrative embodiment basically shows processes to be performed by the controller  13  in accordance with instructions described in the programs  14   a.  Namely, each of processes such as “determining,” “judging,” “extracting,” “selecting,” “calculating,” “specifying,” “identifying,” “obtaining,” “acquiring,” “receiving,” “accepting,” and “controlling” in the following description may represent a process by the controller  13 . It is noted that “obtaining” or “acquiring” may be used as a concept that does not necessarily require a request. Namely, a process of receiving data without the controller  13  making a request for the data may be included in a concept of “the controller  13  obtaining (acquiring) data.” Further, “data” in the present disclosure may be expressed in a computer-readable bit sequence. Additionally, a plurality of pieces of data having substantially the same meaning or content but expressed in different formats shall be treated as the same data. The same may apply to “information” in the present disclosure. 
     The internal memory  14  has a data storage area in which management information  30 , encryption key  31 , setting information  32 , and authentication DB  33  are stored. The management information  30 , the encryption key  31 , the setting information  32  and the authentication DB  33  will be described later in detail. As will be described below, the “management information  30 ” is also stored in the USB memory  23 . Therefore, when it is required to distinguish between the management information  30  stored in the internal memory  14  and the management information  30  stored in the USB memory  23 , the alphabet characters “a,” and “b” are added to the end of the reference numeral thereof. Namely, the management information stored in the internal memory  14  is represented with reference characters “ 30   a ” added, and the management information stored in the USB memory  23  is represented by reference characters “ 30   b ” added. 
     Next, a configuration of the PC  24  will be described. The PC  24  includes a communication I/F, a memory, and a controller, which are not shown in any of the drawings. Respective configurations of the above elements included in the PC  24  are substantially the same as those of the communication I/F  18 , the internal memory  14 , and the controller  13  included in the MFP  10 . The PC  24  may generate job data JD by a function of an application program stored in the memory. The job data JD is data for causing the MFP  10  to perform printing. In the illustrative embodiment, the job data JD contains PJL (“PJL” is an abbreviation for “Printer Job Language”) data and PDL (“PDL” is an abbreviation for “Page Description Language”) data. The PJL data is data described in Printer Job Language. The PDL data is data described in Page Description Language. Examples of the PDL data may include, but are not limited to, PS (“PS” is an abbreviation for “Post Script”) data, PCL (“PCL” is an abbreviation for “Printer Command Language”) data, JPEG (“JPEG” is an abbreviation for “Joint Photographic Experts Group”) data, and GDI (“GDI” is an abbreviation for “Graphic Device Interface”) data. 
     Referring to  FIGS. 3A to 3C , an explanation will be provided of a procedure of a process to set a memory as a storage destination in a storage printing function. The storage printing function is a function to store print data corresponding to received job data JD in a memory set as a storage destination, and cause the print engine  15  to print the print data stored in the memory set as the storage destination in response to an operation received via the user I/F  17 . The storage printing function includes a first storage printing function for job data JD with a PIN code and a second storage printing function for job data JD with a user name. The first storage printing function is set valid at the time of factory shipment of the MFP  10 . The second storage printing function is switchable to be valid or invalid in response to an external instruction. When having switched the second storage printing function to be valid in response to a user instruction, the controller  13  sets the first storage printing function invalid. Meanwhile, when having switched the second storage printing function to be invalid in response to a user instruction, the controller  13  sets the first storage printing function valid. In the storage printing function, when a USB storage process is set valid, the print data may be stored in the USB memory  23 . On the other hand, when the USB storage process is set invalid, the print data may be stored in the internal memory  14 . 
     Referring to  FIGS. 3A to 3C , an example case will be described in which the port  22  is set as a port to which the USB memory  23  as a storage destination is to be attached. The process shown in  FIGS. 3A to 3C  may be performed by the controller  13  executing one or more programs  14   a  stored in the internal memory  14 . The controller  13  performs the process shown in  FIGS. 3A to 3C  in response to receipt of an instruction to make a transition of the display on the user I/F  17  to a setting screen for the storage printing function in response to an operation onto a standby screen  60  shown in  FIG. 4 . The standby screen  60  is a screen for receiving selection instructions for various functions of the MFP  10 . The standby screen  60  is displayed on the user I/F  17  to wait for an instruction to be input, after the MFP  10  is powered on or after completion of each process by the MFP  10 . 
     First, an explanation will be provided of an example situation where the USB storage process is switched from an invalid status to a valid status. In the following description, each step included in each process will be represented with “S” added in front of a corresponding reference numeral. In S 10 , the controller  13  determines whether to set the USB storage process valid. Specifically, after making a transition of the display on the user I/F  17  from the standby screen  60  to the setting screen for the storage printing function, in response to receiving an instruction to set the USB storage process valid via the setting screen, the controller  13  determines to set the USB storage process valid (S 10 : Yes). 
     In S 11 , the controller  13  sets a port to which the USB memory  23  as a storage destination for print data is to be attached. Specifically, the controller  13  displays a storage destination setting screen  70  (see  FIG. 5 ) in response to an operation onto the user I/F  17 . The storage destination setting screen  70  includes designation buttons  71 ,  72 , and  73  to receive a selection from among available storage destinations for print data, i.e., the internal memory  14  (indicated with “Internal Memory” in  FIG. 5 ), the port  21  (indicated with “Rear” in  FIG. 5 ), and the port  22  (indicated with “Side” in  FIG. 5 ). Each of the designation buttons  71 ,  72 , and  73  is a button to be operated to select a corresponding one of the available storage destinations for print data. A designation button corresponding to a currently-set storage destination is displayed in a different color from a color of the other designation buttons. In  FIG. 5 , the designation button  71  displayed in the different color is indicated as a shaded area. The setting information  32  is updated according to the operation of the designation buttons  71 ,  72 , and  73 . The setting information  32  is information indicating a port (i.e., the “Rear” port  21  or the “Side” port  22 ) to which the USB memory  23  set as the storage destination for print data is to be attached, or the internal memory  14 . 
     In S 12 , the controller  13  determines whether print data is stored in the internal memory  14  that had been set as the storage destination before the port setting in S 11 . When determining that no print data is stored in the internal memory  14  (S 12 : No), the controller  13  proceed to S 23 . Meanwhile, when determining that print data is stored in the internal memory  14  (S 12 : Yes), the controller  13  proceed to S 13 . In S 13 , the controller  13  causes the user I/F  17  to display a confirmation screen to inquire of the user whether to initialize the internal memory  14 . 
     In S 14 , the controller  13  determines whether a “YES” button has been operated on the confirmation screen. When determining that the “YES” button has been operated on the confirmation screen (S 14 : Yes), the controller  13  proceeds to S 15  to delete the print data stored in the internal memory  14 . This is because of the following reasons. The memory set as the storage destination in the USB storage process is supposed to be used for storing print data of a specific user or a group to which the specific user belongs. Therefore, it is preferable not to mix print data to be newly stored with print data that has been stored from when the internal memory  14  was previously used as the storage destination for print data. Meanwhile, when determining that the “YES” button has not been operated on the confirmation screen (S 14 : No), the controller  13  terminates the process shown in  FIGS. 3A to 3C . In this case, the controller  13  maintains the memory currently set as the storage destination for print data, without changing it to the memory newly set in S 11  as the storage destination for print data. It is noted that the controller  13  may not delete the print data stored in the internal memory  14  in setting the USB storage process valid, but may move the print data stored in the internal memory  14  into the USB memory  23  that is to be the storage destination after the USB storage process is set valid. 
     In S 23 , the controller  13  determines whether the USB memory  23  is attached to the port set in S 11 . Specifically, the controller  13  determines whether the USB memory  23  is attached to the port indicated by the setting information  32  stored in the internal memory  14 . When determining that the USB memory  23  is not attached to the port set in S 11  (S 23 : No), the controller  13  proceeds to S 30 . In S 30 , the controller  13  causes the user I/F  17  to display an unattachment error notification representing that the USB memory  23  is not attached to the port set in S 11 . Specifically, for instance, the controller  13  causes the user I/F  17  to display an unattachment error screen that includes a message for prompting the user to attach the USB memory  23  to the port set in S 11  and a close button. When detecting that the close button has been selected on the unattachment error screen displayed in S 30 , the controller  13  erases the unattachment error screen and terminates the process shown in  FIGS. 3A to 3C . 
     When determining that the USB memory  23  is attached to the port set in S 11  (S 23 : Yes), the controller  13  proceeds to S 24 . In S 24 , the controller  13  determines whether an available storage capacity of the USB memory  23  attached to the port set in S 11  is equal to or more than a threshold TH. This is because there is a concern that if the available storage capacity of the USB memory  23  to be used in the USB storage process is small, the USB memory  23  may be unable to sufficiently store print data. This is also because if the available storage capacity of the USB memory  23  is small, it may cause a larger number of read/write operations per unit storage area of the USB memory  23  and may result in a higher risk of causing a failure of the USB memory  23 . For instance, the threshold TH used for the determination in S 24  is 8 GB. When determining that the available storage capacity of the USB memory  23  attached to the port set in S 11  is less than the threshold TH (S 24 : No), the controller  13  goes to S 31 . In S 31 , the controller  13  displays an insufficient capacity error notification representing that the available storage capacity of the USB memory  23  attached to the set port is insufficient. Afterward, the controller  13  terminates the process shown in  FIGS. 3A to 3C . 
     When determining that the available storage capacity of the USB memory  23  attached to the port set in S 11  is equal to or more than the threshold TH (S 24 : Yes), the controller  13  proceeds to S 25  to initialize the USB memory  23  attached to the port. Specifically, for instance, the controller  13  may delete all data in the USB memory  23 . In another instance, the controller  13  may format the storage area of the USB memory  23 . Prior to the initialization of the USB memory  23  in S 25 , the controller  13  may cause the user I/F  17  to display a confirmation screen to confirm that the USB memory  23  is to be initialized. In this case, when the initialization of the USB memory  23  has been selected on the confirmation screen, the controller  13  may proceed to S 25 . Meanwhile, when the initialization of the USB memory  23  has not been selected on the confirmation screen, the controller  13  may terminate the process shown in  FIGS. 3A to 3C . 
     In S 26 , the controller  13  sets the USB storage process valid. To set the USB storage process valid, the controller  13  sets a validity determination flag representing the status of the USB storage process to a value representing that the USB storage process is set valid, and stores the set validity determination flag in the internal memory  14 . In addition, the controller  13  stores the setting information  32  in the internal memory  14 . When the USB storage process is set valid, the setting information  32  represents a value (specifically, “Rear” or “Side”) indicating a port (i.e., the “Rear” port  21  or the “Side” port  22 ) to which the USB memory  23  set as the storage destination for print data is to be attached. In S 27 , the controller  13  generates an encryption key  31 . The encryption key  31  is information used to encrypt and decrypt the print data and the management information  30  stored in the USB memory  23  attached to the port. Each time the USB storage process is set valid, the controller  13  generates a new encryption key. Hereinafter, the port set as a dedicated port for the USB storage process may be referred to simply as a “dedicated port.” 
     In S 28 , the controller  13  stores the identification information  34  in the USB memory  23  attached to the port. The identification information  34  is information representing that the USB memory  23  with the identification information  34  stored therein is set as the storage destination for print data in the USB storage process. Specifically, the controller  13  generates the management information  30   b,  and encrypts the management information  30   b  with the encryption key  31  generated in S 27 , thereby generating the identification information  34 . It is noted that the management information  30   b  encrypted in S 28  does not contain any information recorded about the print data. Hereinafter, the USB memory  23 , which has been set as the storage destination for print data by the identification information  34  being stored therein, may be referred to simply as a “dedicated memory,” to differentiate it from another USB memory  23 . 
     In S 29 , the controller  13  stores, into the internal memory  14 , the encryption key  31  used to generate the identification information  34  in S 28 . Namely, the encryption key  31  is information paired with the identification information  34 . After completion of S 29 , the controller  13  terminates the process shown in  FIGS. 3A to 3C . 
     Next, an explanation will be provided of an example situation where the USB storage process is switched from the valid status to the invalid status. When determining to not set the USB storage process valid (S 10 : No), the controller  13  proceeds to S 16 . In S 16 , the controller  13  determines whether the USB memory  23  is attached to the port currently in use for the USB storage process. When determining that the USB memory  23  is attached to the port currently in use for the USB storage process (S 16 : Yes), the controller  13  proceeds to S 17 . In S 17 , the controller  13  causes the user I/F  17  to display a confirmation screen to confirm that the USB memory  23  attached to the port is to be initialized. The confirmation screen includes a message representing that all the data in the USB memory  23  is to be deleted and that the role of the USB memory  23  as the storage destination for print data is to be set invalid. The confirmation screen further includes an OK button to receive an instruction to start initializing the USB memory  23 , and a cancel button to receive an instruction to cancel the initialization of the USB memory  23 . 
     In response to detecting in S 18  that the OK button on the confirmation screen has been operated, the controller  13  proceeds to S 21  to initialize the USB memory  23  currently attached to the port. The process of S 21  is substantially the same as the process of S 25 . In S 22 , the USB storage process is set invalid. Specifically, the controller  13  changes the value of the validity determination flag stored in the internal memory  14  to a value representing that the USB storage process is set invalid. Thereby, the MFP  10  is brought into a state where the USB storage process is set invalid, and in the storage printing function, the storage destination for print data is set to the internal memory  14 . It is noted that in S 22 , for instance, the controller  13  may delete only the print data and the management information  30  among the data in the USB memory  23 . In another instance, in setting the USB storage process invalid in S 22 , the controller  13  may not delete the print data and the management information  30  in the USB memory  23 , but may move the print data and the management information  30  into the internal memory  14 . 
     In substantially the same manner as in S 22  where the USB storage process is set invalid, when switching one function to the valid status and the other function to the invalid status between the first storage printing function and the second storage printing function, the controller  13  deletes the print data that has been stored in the USB memory  23  through the process pertaining to the function (i.e., the first storage printing function or the second storage printing function) set invalid. This is because of the following reasons. Between the first storage printing function and the second storage printing function, information (e.g., a user name and a PIN code) required in the below-mentioned step S 87  is different. Therefore, if the print data is left stored in the USB memory  23 , for instance, it may produce a negative effect that print data remains unprintable. In this case, the information indicating the dedicated port and the dedicated memory is not deleted. Thereby, it is possible to use the already-set USB storage process as is even after switching one function to the valid status and the other function to the invalid status between the first and second storage printing functions. 
     When determining that the USB memory  23  is not attached to the port currently in use for the USB storage process (S 16 : No), the controller  13  proceeds to S 19  to display a confirmation screen on the user I/F  17 . The confirmation screen displayed in S 19  includes a message representing that the USB memory  23  is not attached to the port, and buttons (e.g., an OK button and a cancel button) for receiving selection instructions as to whether to set the USB storage process invalid. 
     In S 20 , the controller  13  determines whether the OK button has been operated on the confirmation screen. When determining that the OK button has been operated on the confirmation screen (S 20 : Yes), the controller  13  proceeds to S 22  to set the USB storage process invalid. Then, the controller  13  terminates the process shown in  FIGS. 3A to 3C . When determining that the OK button has not been operated on the confirmation screen (S 20 : No), the controller  13  terminates the process shown in  FIGS. 3A to 3C . 
     Next, a procedure of a process to be performed by the controller  13  in response to the USB memory  23  being attached to a port will be described with reference to  FIGS. 6A to 6C . The attachment of the USB memory  23  is also detected when the MFP  10  is powered on with the USB memory  23  being attached to the port  21  or the port  22 . Therefore, in this case as well, the process shown in  FIGS. 6A to 6C  is started. The process shown in  FIGS. 6A to 6C  may be performed by the controller  13  executing one or more programs  14   a  stored in the internal memory  14 . 
     In S 40 , the controller  13  determines whether the standby screen  60  (see  FIG. 4 ) is being displayed on the user I/F  17 . When determining that the standby screen  60  is not being displayed on the user I/F  17  (S 40 : No), the controller  13  terminates the process shown in  FIGS. 6A to 6C . This is because of the following reasons. In a situation where the standby screen  60  is not being displayed on the user I/F  17 , the controller  13  is performing some process. Therefore, the controller  13  does not perform a below-mentioned process of changing the memory set as the storage destination or a below-mentioned process of changing the function to use the USB memory  23 , until completion of the process currently in execution. When determining that the standby screen  60  is being displayed on the user I/F  17  (S 40 : Yes), the controller  13  goes to S 41 . 
     In S 41 , the controller  13  determines whether the USB storage process is currently valid. Specifically, the controller  13  refers to the validity determination flag, thereby determining whether the USB storage process is currently valid. When determining that the USB storage process is currently valid (S 41 : Yes), the controller  13  goes to S 42 . In S 42 , the controller  13  determines whether the USB memory  23  that has been attached to the port this time stores therein the identification information  34  paired with the encryption key  31 . Specifically, the controller  13  determines whether the encrypted management information  30   b  is stored in the USB memory  23  attached to the port this time and whether the management information  30   b  is decryptable using the encryption key  31  stored in the internal memory  14 . Namely, when the encrypted management information  30   b  is stored in the USB memory  23  attached to the port this time, and the management information  30   b  is decryptable using the encryption key  31  stored in the internal memory  14 , the controller  13  makes an affirmative determination in S 42  (S 42 : Yes). 
     When determining that the USB memory  23  that has been attached to the port this time stores therein the identification information  34  paired with the encryption key  31  (S 42 : Yes), the controller  13  goes to S 43 . In S 43 , the controller  13  determines whether the port to which the USB memory  23  has been attached this time is the dedicated port. Specifically, the controller  13  refers to the setting information  32 , thereby determining whether the port to which the USB memory  23  has been attached this time is the dedicated port. When determining that the port to which the USB memory  23  has been attached this time is the dedicated port (S 43 : Yes), the controller  13  terminates the process shown in  FIGS. 6A to 6C . The MFP  10  is enabled to store print data in the storage printing function even if the dedicated memory is removed from the dedicated port and thereafter attached to the dedicated port again. Namely, when it is determined in S 43  that the port to which the USB memory  23  has been attached this time is the dedicated port (S 43 : Yes), it is assumed that the dedicated memory has been merely re-attached after once removed by the user. 
     When determining that the port to which the USB memory  23  has been attached this time is not the dedicated port (S 43 : No), the controller  13  proceeds to S 44  to display a notification screen  75  (see  FIG. 7 ) on the user I/F  17 . The notification screen  43  displayed in S 44  includes a message  76  for inquiring of the user whether to make a transition of the display on the user I/F  17  to a storage destination changing screen for changing the port to be used in the USB storage process. In addition, the message  76  includes a precaution that if the storage destination is changed, the port that has been heretofore set as the dedicated port will be unable to be used in the USB storage process. The notification screen  43  further includes a YES button  72  and a NO button  73 . After S 44 , the controller  13  determines whether the YES button  72  has been selected on the notification screen  75  (S 45 ). When the NO button  73  has been selected on the notification screen  75  (S 45 : No), the controller  13  terminates the process shown in  FIGS. 6A to 6C . Meanwhile, when the YES button  72  has been selected on the notification screen  75  (S 45 : Yes), the controller  13  goes to S 46 . 
     In S 46 , the controller  13  displays the storage destination setting screen  70  on the user I/F  17 . As described above, the destination setting screen  70  is a screen to receive an instruction to change the storage destination for print data to a selected one from among the internal memory  14 , the port  21 , and the port  22 . On the storage destination setting screen  70  shown in  FIG. 8 , the designation button  73  associated with the port  22  currently set as the storage destination of print data is displayed in a different color from a color of the other designation buttons  71  and  72 . The storage destination setting screen  70  shows which port among the plurality of ports  21  and  22  is set as the dedicated port. 
     In S 47 , the controller  13  determines whether one of the ports  21  and  22  other than the internal memory  14  has been selected on the storage destination setting screen  70 . When one of the ports  21  and  22  other than the internal memory  14  has been selected on the storage destination setting screen  70  (S 47 : Yes), the controller  13  goes to S 48 . In S 48 , the controller  13  sets the USB storage process, for which the USB memory  23  attached to the port selected in S 46  is set as the storage destination for print data. Specifically, for instance, when the user provides an instruction to select a port (e.g., the port  21 ) to which the dedicated memory is currently attached on the storage destination setting screen  70 , the controller  13  sets, as a dedicated port, the port  21  to which the dedicated memory is currently attached. At this time, the controller  13  cancels a dedicated-port setting for the port  22  that has already been set as the dedicated port. The controller  13  updates the setting information  32  according to the newly-configured dedicated-port setting for the port  21  and the cancellation of the dedicated-port setting for the port  22 . 
     Meanwhile, when determining in S 47  that none of the ports  21  and  22  other than the internal memory  14  has been selected, i.e., that the internal memory  14  has been selected on the storage destination setting screen  70  (S 47 : No), the controller  13  goes to S 49 . In S 49 , the controller  13  sets the internal memory  14  as the storage destination for print data. At this time, the controller  13  sets the USB storage process invalid by canceling the dedicated-port setting for the port  22  that has already been set as the dedicated port. After completion of S 48  or S 49 , the controller  13  terminates the process shown in  FIGS. 6A to 6C . 
     When determining that the USB memory  23  that has been attached to the port this time does not store therein the identification information  34  paired with the encryption key  31  (S 42 : No), the controller  13  goes to S 50 . In S 50 , the controller  13  determines whether the port to which the USB memory  23  has been attached this time is set as the dedicated port. Specifically, for instance, the controller  13  may refer to the setting information  32  stored in the internal memory  14 , thereby determining which port is currently set as the dedicated port. 
     When determining that the port to which the USB memory  23  has been attached this time is set as the dedicated port (S 50 : Yes), the controller  13  goes to S 51 . In S 51 , the controller  13  causes the user I/F  17  to display substantially the same storage destination setting screen  70  as displayed in S 46 . This is because the user may have mistakenly attached the USB memory  23 , which is not set as the dedicated memory, to the port set as the dedicated port. 
     In S 52 , the controller  13  determines whether one of the ports  21  and  22  other than the internal memory  14  has been selected on the storage destination setting screen  70  displayed in S 51 . When determining that one of the ports  21  and  22  other than the internal memory  14  has been selected on the storage destination setting screen  70  (S 52 : Yes), the controller  13  goes to S 53 . In S 53 , the controller  13  sets the USB storage process, for which the USB memory  23  attached to the port selected on the storage destination setting screen  70  is set as the storage destination for print data. When the port to which the USB memory  23  has been attached this time is selected on the storage destination setting screen  70  displayed in S 52 , the controller  13  may set the USB memory  23  attached this time as a dedicated memory. In this case as well, the controller  13  cancels a dedicated-memory setting for a USB memory  23  that has already been set as the dedicated memory. After completion of S 53 , the controller  13  terminates the process shown in  FIGS. 6A to 6C . Meanwhile, when determining that the internal memory  14  has been selected on the storage destination setting screen  70  (S 52 : No), the controller  13  terminates the process shown in  FIGS. 6A to 6C . This is because the USB storage process is already set valid now. 
     When determining that the port to which the USB memory  23  has been attached this time is not set as the dedicated port (S 50 : No), the controller  13  goes to S 54 . In S 54 , for instance, the controller  13  determines whether the dedicated memory has already been attached to the dedicated port. When determining that the dedicated memory has already been attached to the dedicated port (S 54 : Yes), the controller  13  proceeds to S 55  to display a function display screen (see  FIG. 9 ) on the user I/F  17 . In S 54 , in another instance, the controller  13  may determine whether a USB memory  23 , which is different from the USB memory  23  attached to the port this time, is attached to the dedicated port. 
     The function display screen  80  shown in  FIG. 9  displays thereon designation buttons  81  and  82  to receive a selection of a function using the USB memory  23  attached this time from available choices of functions. Specifically, the designation button  81  is a button to be operated to select “Scan to USB” as a function using the USB memory  23  attached this time. The function “Scan to USB” is a function to perform a process of generating scanned data by causing the scan engine  16  to scan an image of a document placed on a document table (not shown), and storing the generated scanned data into the USB memory  23  attached to the port. The designation button  82  is a button to be operated to select “Direct Print” as a function using the USB memory  23  attached this time. The function “Direct Print” is a function to perform a process of, when the USB memory  23  is attached to the port  21  or  22 , displaying a list of image data stored in the attached USB memory  23  on the user I/F  17  and causing the print engine  15  to print image data selected from the displayed list. It is noted in S 55 , it is not possible to select “USB Storage Process” as a function using the USB memory  23  attached this time. This is because if a USB memory  23  has already been attached to the dedicated port, the user is unlikely to use the USB memory  23  attached this time, in the USB storage process. 
     On the other hand, when determining that the dedicated memory has not been attached to the dedicated port (S 54 : No), the controller  13  proceeds to S 56  to display on the user I/F  17  the function display screen  80  shown in  FIG. 10 . The function display screen  80  shown in  FIG. 10  displays thereon designation buttons  81 ,  82 , and  83  to receive a selection of a function using the USB memory  23  attached this time from among available choices of functions. Specifically, in addition to substantially the same designation buttons  81  and  82  as displayed on the function display screen  80  shown in  FIG. 9 , the function display screen  80  shown in  FIG. 10  further includes the designation button  83  to be operated to select “USB Storage Process” as a function using the USB memory  23  attached this time. 
     After completion of S 55  or S 56 , the controller  13  proceeds to S 57  to determine whether a selecting operation to select one of the designation buttons has been detected. When determining that a selecting operation to select one of the designation buttons has not been detected (S 57 : No), the controller  13  waits until a selecting operation to select one of the designation buttons is detected. Meanwhile, when determining that a selecting operation to select one of the designation buttons has been detected (S 57 : Yes), the controller  13  proceeds to S 58  to perform a process according to the function selected on the function display screen  80 . Specifically, when the USB storage process has been selected again, the controller  13  sets the USB memory  23  attached to the port this time to the dedicated memory, and sets the port to which the USB memory  23  has been attached this time to the dedicated port. In this case, the controller  13  cancels the dedicated-port setting for the port that has already been set as the dedicated port. Meanwhile, when one of the designation buttons  82  and  83  has been selected, the controller  13  switches the display on the user I/F  17  to an operation screen for using the USB memory  23  attached to the port this time in the selected function (i.e., the function associated with the selected designation button  82  or  83 ), and performs a process corresponding to the selected function. After completion of S 58 , the controller  13  terminates the process shown in  FIGS. 6A to 6C . 
     When the designation button  81  has been operated on the function display screen  80  displayed in S 56 , the controller  13  displays a scanning screen for “Scan to USB” on the user I/F  17 . When a scanning instruction has been received via the scanning screen, the controller  13  causes the scan engine  16  to scan a document to generate scanned data, and stores the scanned data into the USB memory  23  attached to the port this time. In this case, after the scanning screen has been displayed on the user I/F  17 , the USB memory  23  may be attached to the port. When the identification information  34  is stored in the USB memory  23  attached to the port, the controller  13  may, for instance, display a warning screen  85  (see  FIG. 11 ) on the user I/F  17 . The warning screen  85  displays thereon a message representing that the available storage capacity for the USB storage process will be reduced if the scanned data is stored in the USB memory  23 . For instance, the controller  13  may terminate the “USB storage process” after displaying the warning screen  85 . In another instance, the controller  13  may display the warning screen  85  on the user I/F  17  and then receive a scanning instruction via the user I/F  17 . 
     Meanwhile, when the designation button  82  has been operated on the function display screen  80 , in “Direct Print” associated with the designation button  82 , the controller  13  causes the user I/F  17  to display available choices of image data (e.g., JPEG data and PDF data) stored in the USB memory  23  and prompts the user to select one of the available choices of image data displayed, to print the selected image data. At this time, if the USB memory  23  contains print data that has been encrypted and stored in a below-mentioned process of S 68 , the print data is not set as target data to be printed. Moreover, the print data is not displayed as an option on the user I/F  17 . 
     Next, referring to  FIG. 12 , an explanation will be provided of a process to be performed in response to the MFP  10  receiving job data JD, in a state where the storage printing function is set valid. Specifically, when the first storage printing function is set valid, the controller  13  starts a process shown in  FIG. 12  in response to detecting that job data JD to which a PIN code is added has been received. When the second storage printing function is set valid, the controller  13  starts the process shown in  FIG. 12  in response to detecting that job data JD to which a user name is added has been received. It is assumed that when the second storage printing function is valid, the job data JD to be processed in processes pertaining to the storage printing function includes a user name that has been registered in the authentication DB  33  prior to the process shown in  FIG. 12 . After receiving from the PC  24  the job data JD with a job name and the user name set, the controller  13  determines whether the user name included in the received job data JD is registered in the authentication DB  33 . When determining that the user name included in the received job data JD is registered in the authentication DB  33 , the controller  13  performs the process shown in  FIG. 12 . The process shown in  FIG. 12  may be performed by the controller  13  executing one or more programs  14   a  stored in the internal memory  14 . 
     In S 60 , the controller  13  determines whether the USB storage process is set valid. Specifically, as described above, the controller  13  determines whether the USB storage process is set valid, based on the validity determination flag stored in the internal memory  14 . When determining that the USB storage process is set valid (S 60 : Yes), the controller  13  goes to S 64 . 
     In S 64 , the controller  13  determines whether the USB memory  23  is attached to the dedicated port. When determining that the USB memory  23  is attached to the dedicated port (S 64 : Yes), the controller  13  goes to S 65  to determine whether the identification information  34  is stored in the USB memory  23  attached to the dedicated port. When determining that the identification information  34  is stored in the USB memory  23  attached to the dedicated port (S 65 : Yes), the controller  13  goes to S 66  to perform RIP processing for the received job data JD. Specifically, the controller  13  rasterizes the PDL data contained in the job data JD according to contents represented by the PJL data contained in the job data, thereby generating print data. 
     In S 67 , the controller  13  compresses the print data generated in S 66 , and then encrypts the compressed print data. At this time, the controller  13  encrypts the print data using the encryption key generated in S 27  of  FIG. 3C . In S 68 , the controller  13  stores the print data encrypted in S 67  in the USB memory  23  (i.e., the dedicated memory) attached to the port set as the dedicated port. In S 68 , the controller  13  encrypts the print data in a format un-processable in “Direct Print.” 
     In S 69 , the controller  13  reads out the management information  30   b  from the USB memory  23  storing the print data, decrypts the read management information  30 B, and adds information corresponding to the job data JD received this time to the decrypted management information  30   b.  Specifically, the controller  13  decrypts the management information  30   b  stored in the USB memory  23  using an encryption key. When the first storage printing function is set valid, a job name, a data name, and reception date and time are stored as a single record in the management information  30   b  in association with the PIN code contained in the job data JD. On the other hand, when the second storage printing function is set valid, the job name, the data name, and the reception date and time are stored as a single record in the management information  30   b  in association with the user name contained in the job data JD. Thereby, the MFP  10  is enabled to manage each record in the management information  30   b  in association with corresponding print data stored in the internal memory  14 . 
     When determining that the USB memory  23  is not attached to the dedicated port (S 64 : No), the controller  13  goes to S 70 . In S 70 , the controller  13  causes the user I/F  17  to display an error screen providing a notification that the USB memory  23  is not attached to the dedicated port. For instance, the error screen displayed in S 70  displays thereon a message representing that the job data JD is unable to be stored because the USB memory  23  is not attached to the dedicated port. When a close button has been operated on the error screen, the error screen is hidden. In S 70 , instead of being displayed on the user I/F  17 , the error screen may be displayed on the PC  24  as a sending source of the job data JD. In this case, the controller  13  may communicate with the PC  24  to send image data corresponding to the error screen and a request for displaying the error screen to the PC  24 . 
     In S 71 , the controller  13  discards the job data JD received this time. This is because the dedicated memory, which is the storage destination for the received job data JD, is not attached to the dedicated port. After completion of S 71 , the controller  13  terminates the process shown in  FIG. 12 . In S 71 , instead of discarding the job data JD received this time, the controller  13  may store the job data JD in the internal memory  14  in response to a user instruction. 
     When determining that the USB storage process is set invalid (S 60 : No), the controller  13  goes to S 61 . In S 61 , the controller  13  performs RIP processing to convert the job data JD into the print data. The RIP processing performed in S 61  is substantially the same as the RIP processing performed in S 66 . 
     In S 62 , the controller  13  stores the print data generated this time in the internal memory  14 . Namely, in S 62 , unlike S 68 , the controller  13  does not store the encrypted print data. In S 62 , the controller  13  may compress the print data to reduce a data volume of the print data and then store the compressed print data in the internal memory  14 . In S 63 , the controller  13  adds information corresponding to the print data generated this time to the management information  30   a  stored in the internal memory  14 . In S 63 , the controller  13  stores the job name, the data name, and the reception date and time as a single record in the management information  30   a,  in association with the user name or the PIN code depending on whether the second storage printing function is set valid or invalid. 
     Next, a procedure for printing the print data stored in the internal memory  14  or the USB memory  23  will be described with reference to  FIGS. 13A and 13B .  FIGS. 13A and 13B  are flowcharts showing a procedure of a process to be performed by the controller  13  upon receipt of a print instruction for the print data via the user I/F  17 . Specifically, when a print instruction operation has been received via the standby screen  60  displayed on the user I/F  17 , the controller  13  starts the process shown in  FIGS. 13A and 13B . The process shown in  FIGS. 13A and 13B  may be performed by the controller  13  executing one or more programs  14   a  stored in the internal memory  14 . 
     In S 81 , the controller  13  determines whether the USB storage process is set valid, by referring to the validity determination flag. When determining that the USB storage process is set invalid (S 81 : No), the controller  13  proceeds to S 82  to read out the management information  30   a  stored in the internal memory  14 . As described above, when the first storage printing function is set valid, and the USB storage process is set invalid, the management information  30   a  includes a list of print data to each of which a corresponding PIN code is added. Meanwhile, when the second storage printing function is set valid, and the USB storage process is set invalid, the management information  30   a  includes a list of print data to each of which a corresponding user name is added. 
     On the other hand, when determining that the USB storage process is set valid (S 81 : Yes), the controller  13  proceeds to S 83  to determine whether the USB memory  23  is attached to the dedicated port. When determining that the USB memory  23  is attached to the dedicated port (S 83 : Yes), the controller  13  proceeds to S 84  to determine whether the identification information  34  is stored in the USB memory  23  attached to the dedicated port. 
     When determining that the identification information  34  is stored in the USB memory  23  attached to the dedicated port (S 84 : Yes), the controller  13  proceeds to S 85 . In S 85 , the controller  13  reads out the management information  30   b  from the dedicated memory (i.e., the USB memory  23  attached to the dedicated port), then decrypts the management information  30   b  using the encryption key  31 , and stores the decrypted management information  30   b  into the internal memory  14 . 
     In S 87 , using the management information  30  read out in S 82  or S 85 , the controller  13  determines whether print data corresponding to the current function (i.e., the first storage printing function or the second storage printing function) is stored in the corresponding memory (i.e., the internal memory  14  or the dedicated memory). Specifically, when the first storage printing function is set valid, the controller  13  causes the user I/F  17  to display a screen for prompting the user to input the PIN code, and determines whether the same PIN code as input by the user is stored in the management information  30 . Meanwhile, when the second storage printing function is set valid, the controller  13  determines whether the user name of the login user is stored in the management information  30 . When determining that print data corresponding to the current function is not stored in the memory (S 87 : No), the controller  13  terminates the process shown in  FIGS. 13A and 13B . When the second storage printing function is set valid, the controller  13  may start the process shown in  FIGS. 13A and 13B  upon receipt of a login operation via the standby screen  60 . Moreover, in response to receipt of a print instruction via the standby screen  60  in a state where the login operation has already been accepted, the controller  13  may start the process shown in  FIGS. 13A and 13B . Further, the controller  13  may accept the login operation in S 87 . Furthermore, the controller  13  may start the process shown in  FIGS. 13A and 13B  after receiving the PIN code when the second storage printing function is set valid. In this case, the acceptance of the login operation may be omitted in S 87 . 
     On the other hand, when determining that print data corresponding to the current function is stored in the memory (S 87 : Yes), the controller  13  goes to S 88 . In S 88 , the controller  13  determines whether it has been determined in S 81  that the USB storage process is set valid. When determining in S 88  that it has been determined in S 81  that the USB storage process is set valid (S 88 : Yes), the controller  13  goes to S 90 . Meanwhile, when determining in S 88  that it has been determined in S 81  that the USB storage process is set invalid (S 88 : No), the controller  13  goes to S 89 . In S 89  and S 90 , by referring to the management information  30 , the controller  13  selects print data associated with the PIN code or the user name of the login user among the print data stored in the corresponding memory (i.e., the internal memory  14  or the dedicated memory), and prints the selected print data. In S 90 , more specifically, the controller  13  decrypts the print data stored in the dedicated memory, using the encryption key  31 , and then causes the print engine  15  to print the decrypted print data. 
     After completion of S 89  or S 90 , the controller  13  goes to S 91 . In S 91 , the controller  13  deletes the print data which the controller  13  has caused the print engine  15  to print in S 89  or S 90 . More specifically, the controller  13  deletes the print data, and temporary data generated in the printing process. In S 92 , the controller  13  deletes from the management information  30  information (i.e., a record) associated with the printed print data, thereby updating the management information  30 . It is noted that the controller  13  may perform the process of S 92  after printing all the print data associated with the input PIN code or for the login user. 
     After completion of S 92 , the controller  13  goes back to S 87 . When determining in S 87  that print data corresponding to the current function is stored in the memory (S 87 : Yes), the controller  13  repeatedly performs the processes of S 88  to S 92 . Then, when all the print data for the login user has been printed, the controller  13  determines in S 87  that print data corresponding to the current function is not stored in the memory (S 87 : No), and terminates the process shown in  FIGS. 13A and 13B . When the controller  13  returns from S 92  to S 87 , if the first storage printing function is set valid, it is considered that the PIN code has already been input by the user. Therefore, in this case, the controller  13  may not need to accept an input of the PIN code again in S 87 . 
     In S 83 , when determining that the USB memory  23  is not attached to the dedicated port (S 83 : No), the controller  13  goes to S 86 . Moreover, when determining that the identification information  34  is not stored in the USB memory  23  attached to the dedicated port (S 84 : No), the controller  13  goes to S 86 . In S 86 , the controller  13  displays an error screen providing a notification that the USB memory  23  is not attached. Specifically, the error screen includes a message representing that print data is unable to be read since the dedicated memory is not attached to the dedicated port. For instance, the error screen displayed in S 86  may be hidden in response to a close button being operated on the error screen. After execution of S 86 , the controller  13  terminates the process shown in  FIGS. 13A and 13B . 
     As described above, the illustrative embodiment produces the following advantageous effects. When determining that the USB memory  23  attached to one of the ports  21  and  22  this time is set as the dedicated memory, the controller  13  displays the notification screen  75  and the storage destination setting screen  70  on the user I/F  17 . Meanwhile, when determining that the USB memory  23  attached this time is not set as the dedicated memory, the controller  13  displays the storage destination setting screen  70  or the function display screen  80  on the user I/F  17 . Thereby, what to display on the user I/F  17  is changed depending on whether the USB memory  23  attached to the port  21  or  22  this time is set as the dedicated memory. Furthermore, in situations where the user is likely to use the USB memory  23  attached to the port  21  or  22  this time in a process pertaining to the storage printing function, the storage destination setting screen  70  is displayed on the user I/F  17 . Therefore, it is possible to improve the user-friendliness of the image forming apparatus. 
     The controller  13  displays the available choices of functions using the USB memory  23  attached to the port  21  or  22  on the function display screen  80 . The available choices of functions displayed on the function display screen  80  include one or more functions other than the “USB Storage Process” pertaining to the storage printing function. Hereinafter, the one or more functions different from “USB Storage Process” pertaining to the storage printing function may be simply referred to as “other functions” or “different functions.” In response to receipt of an instruction to select one of the available choices of different functions displayed on the function display screen  80 , the controller  13  sets the USB memory  23  attached to the port  21  or  22  to be used in the selected different function. Thereby, the user is allowed to select a function to use the attached USB memory  23  while checking the available choices of different functions displayed on the function display screen  80 . 
     When the USB memory  23  that is not set as the dedicated memory has been attached to one of the ports  21  and  22 , if the port to which the USB memory  23  has been attached is set as the dedicated port, the controller  13  causes the user I/F  17  to display the storage destination setting screen  70 . Meanwhile, if the port  21  or  22  to which the USB memory  23  has been attached is not set as the dedicated port, the controller  13  causes the user I/F  17  to display the function display screen  80 . Thus, the controller  13  switches what to display on the user I/F  17  between the storage destination setting screen  70  and the function display screen  80 , depending on whether the attached USB memory  23  is likely to be set as the storage destination for print data in the USB storage process. Thereby, it is possible to further improve the user-friendliness of the image forming apparatus. 
     When the port to which the USB memory  23  has been attached this time is not set as the dedicated port, if another USB memory  23  has already been attached to the port set as the dedicated port, the controller  13  displays “Scan to USB” and “Direct Print” as available choices of functions on the function display screen  80 . Meanwhile, if there is no different USB memory attached to the port set as the dedicated port, the controller  13  displays “USB Storage Process,” “Scan to USB,” and “Direct Print” as available choices of functions on the function display screen  80 . Thus, the available choices of functions to be displayed on the function display screen  80  are changed depending on whether a different USB memory  23  has already been attached to the dedicated port. Thereby, it is possible to further improve the user-friendliness of the image forming apparatus. 
     The controller  13  displays, on the storage destination setting screen  70 , available choices for the storage destination for print data that include the plurality of ports. Thereby, it is possible to flexibly change the port to which the dedicated memory is to be attached. 
     When the USB memory  23  attached to one of the ports  21  and  22  this time is the dedicated memory, the controller  13  regards, as one of conditions for displaying the storage destination setting screen  70 , that the port to which the USB memory has been attached this time is not set as the dedicated port. This is because of the following reasons. When a portable memory set as the dedicated memory is attached to the dedicated port, the user is likely to use the portable memory in the USB storage process. Therefore, in such a case, the controller  13  does not display the storage destination setting screen  70 , thereby reducing troublesome user operations. 
     When the USB memory  23  attached to one of the ports  21  and  22  this time is set to be used in the different function selected on the function display screen  80 , if the USB memory  23  set to be used in the selected different function stores the identification information  34  that is not paired with determination information (e.g., the encryption key  31 ), the controller  13  provides a warning. Thus, the user is warned when the USB memory  23 , which was set as the dedicated memory in the past, is used in the selected different function. Accordingly, for instance, since the user is allowed to determine whether to use the USB memory  23  in the selected different function, it is possible to further improve the user-friendliness of the image forming apparatus. 
     In the storage printing function, the controller  13  encrypts the print data in a format unusable in the other functions, and stores the encrypted print data in the USB memory  23 . In the aforementioned configuration in which the print data, stored in the USB memory in the storage printing function, is encrypted in the format unusable in the other functions, the controller  13  changes the screen to be displayed on the user I/F  17  according to whether the USB memory attached to one of the ports  21  and  22  this time is set as the dedicated memory. Thereby, for instance, the controller  13  may provide a warning to the user to prevent the encrypted print data from being processed in the other functions. Thus, it is possible to prevent the print data encrypted in the format unusable in the other functions from being erroneously processed in the other functions. 
     Hereinabove, the illustrative embodiment according to aspects of the present disclosure has been described. Aspects of the present disclosure may be practiced by employing conventional materials, methodology and equipment. Accordingly, the details of such materials, equipment and methodology are not set forth herein in detail. In the previous descriptions, numerous specific details are set forth, such as specific materials, structures, chemicals, processes, etc., in order to provide a thorough understanding of the present disclosure. However, it should be recognized that aspects of the present disclosure may be practiced without reapportioning to the details specifically set forth. In other instances, well known processing structures have not been described in detail, in order not to unnecessarily obscure the present disclosure. 
     Only an exemplary illustrative embodiment of the present disclosure and but a few examples of their versatility are shown and described in the present disclosure. It is to be understood that aspects of the present disclosure are capable of use in various other combinations and environments and are capable of changes or modifications within the scope of the inventive concept as expressed herein. 
     In the aforementioned illustrative embodiment, when the dedicated memory has been attached to a port that is not set as the dedicated port, the controller  13  causes the user I/F  17  to display the storage destination setting screen  70  in S 46  (see  FIG. 6B ) to receive a user&#39;s instruction to select one of the available choices for the storage destination for print data via the storage destination setting screen  70 . Instead, in another instance, when determining in S 43  that the port to which the USB memory  23  has been attached this time is not the dedicated port (S 43 : No), the controller  13  may proceed to S 48  without receiving a user&#39;s instruction to select one of the available choices displayed on the storage destination setting screen  70 . In this case, the processes of S 44  to S 47  and S 49  may be omitted. 
     When the dedicated memory has been attached to one of the plurality of ports  21  and  22 , and the dedicated port is not yet set, the controller  13  may cause the user I/F  17  to display one or more functions different from the storage printing function as available choices of functions using the dedicated memory. In this case, when determining in S 42  that the USB memory  23  attached this time stores the identification information  34  (S 42 : Yes), the controller  13  may proceed to S 43  to determine whether the internal memory  14  is set as the storage destination for print data (i.e., whether the dedicated port is set). When determining that the internal memory  14  is not set as the storage destination for print data (S 43 : No), the controller  13  may proceed to S 46  to display one or more functions different from the storage printing function. The one or more functions different from the storage printing function may include, but are not limited to, “Scan to USB” and “Direct Print.” Thereby, it is possible to further improve the user-friendliness of the image forming apparatus. 
     In the aforementioned illustrative embodiment, when determining in S 42  (see  FIG. 6A ) that the dedicated memory has been attached to one of the ports  21  and  22 , the controller  13  causes the user I/F  17  to display the notification screen  75  in S 44 . Instead, in another instance, when making an affirmative determination in S 42  and S 43  (S 42 : Yes, and S 43 : Yes), the controller  13  may proceed to S 46  to cause the user I/F  17  to display the storage destination setting screen  70 . Further, in S 46 , instead of displaying the storage destination setting screen  70 , the controller  13  may cause the user I/F  17  to display the confirmation screen  90  shown in  FIG. 14 . The confirmation screen  90  may display thereon a message  91  for inquiring of the user whether to change the USB memory  23  used in the USB storage process to a new USB memory  23 , a YES button  92 , and a NO button  93 . In response to detecting that the YES button  92  has been operated on the confirmation screen  90  displayed in S 51 , the controller  13  may proceed to S 53  to set the USB memory  23  attached to the port this time to the storage destination to be used in the USB storage process. Meanwhile, in response to detecting that the NO button  93  has been operated on the confirmation screen  90 , the controller  13  may terminate the process shown in  FIGS. 6A to 6C . Moreover, when determining in S 42  that the USB memory  23  not set as the dedicated memory has been attached to one of the ports  21  and  22  (S 42 : No), the controller  13  may cause the user I/F  17  to display a screen different from the function display screen  80  in each of the steps S 55  and S 56 . In this case as well, the screen displayed in each of the steps S 55  and S 56  may be configured to receive an instruction to select a function (e.g., “Scan to USB” or “Direct Print”) different from the storage printing function. 
     In the aforementioned illustrative embodiment, the MFP  10  has been described as an example of the image forming apparatus according to aspects of the present disclosure. Nonetheless, besides the MFP  10 , examples of the image forming apparatus may include a printer without the scan engine  16 . 
     In the aforementioned illustrative embodiment, the port  22  is disposed at the left-side portion of the front section  41  (see  FIG. 1 ). In another instance, the port  22  may be disposed at a front-side portion of the front section  41 , i.e., on the same side of the front section  41  as the side on which the user I/F  17  is disposed. Moreover, the MFP  10  may have three or more ports. 
     In the aforementioned illustrative embodiment, in S 42  (see  FIG. 6A ), the controller  13  determines whether the management information  30  decryptable by the encryption key  31  is stored in the USB memory  23 . Instead, in S 27  (see  FIG. 3C ), the controller  13  may generate a unique numerical value as determination information and store the generated unique numerical value in the USB memory  23 . In S 28 , the controller  13  may store the same numerical value as generated in S 27  in the internal memory  14  as the identification information. In S 42  (see  FIG. 6A ), the controller  13  may determine whether the numerical value stored in the USB memory  23  matches the numerical value stored in the internal memory  14 . In this case, when determining that the numerical value stored in the USB memory  23  matches the numerical value stored in the internal memory  14  (S 42 : Yes), the controller  13  may proceed to S 43 . Meanwhile, when determining that the numerical value stored in the USB memory  23  does not match the numerical value stored in the internal memory  14  (S 42 : No), the controller  13  may proceed to S 50 . 
     The controller  13  may store the print data in the USB memory  23  without encrypting the print data. In this case, S 67  in  FIG. 12  and S 90  in  FIG. 13B  may be omitted. 
     The following shows examples of associations between elements exemplified in the aforementioned illustrative embodiments and modifications and elements according to aspects of the present disclosure. The MFP  10  may be an example of an “image forming apparatus” according to aspects of the present disclosure. The print engine  15  may be an example of a “print engine” according to aspects of the present disclosure. The user I/F  17  may be an example of a “user interface” according to aspects of the present disclosure. The memory I/Fs  11  and  12  may be included in examples of a “memory interface” according to aspects of the present disclosure. The ports  21  and  22  may be included in examples of a “port” according to aspects of the present disclosure. The controller  13  may be an example of a “controller” according to aspects of the present disclosure. The internal memory  14  may be an example of an “internal memory” according to aspects of the present disclosure. The internal memory  14  storing the programs  14   a  may be an example of a “non-transitory computer-readable medium storing computer-readable instructions” according to aspects of the present disclosure. The storage destination setting screen  70  displayed in S 46  may be an example of a “first screen” according to aspects of the present disclosure. The storage destination setting screen  70  displayed in S 51  and the function display screen  80  displayed in each of the steps S 55  and S 56  may be included in examples of a “second screen” according to aspects of the present disclosure. The storage destination setting screen  70  displayed in S 51  may be an example of a “third screen” according to aspects of the present disclosure. The function display screen  80  displayed in each of the steps S 55  and S 56  may be an example of a “fourth screen” according to aspects of the present disclosure.