Information processing device, control method, and program

The setup program addresses unpredictable PnP operations by checking for Outbox drivers and waiting for PnP completion, ensuring reliable and efficient driver installation and reducing user inconvenience.

JP7837810B2Active Publication Date: 2026-03-31CANON KK
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-06-20
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

Existing driver update processes during Plug and Play (PnP) in operating systems are unpredictable, leading to setup failures and reduced user convenience due to the inability to determine when PnP operations are complete, causing users to mistakenly attempt using devices during installation.

Method used

A setup program that determines if Plug and Play is running on the operating system, checks for the presence of an Outbox driver, and waits for PnP completion before proceeding with driver updates, ensuring the device is ready for use.

Benefits of technology

Ensures reliable and efficient driver installation by preventing users from using devices during installation, reducing the risk of setup failures and enhancing user convenience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007837810000001
    Figure 0007837810000001
  • Figure 0007837810000002
    Figure 0007837810000002
  • Figure 0007837810000003
    Figure 0007837810000003
Patent Text Reader

Abstract

To provide an information processing device, a control method and a program capable of suppressing a decrease in convenience of a user.SOLUTION: An information processing device performs processing while confirming whether or not a PnP is under execution, in an OS in which the PnP may occur plural times.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing apparatus, a control method, and a program.

Background Art

[0002] Patent Document 1 describes a technique for generating a print queue of an Outbox driver while deleting a print queue of a general-purpose driver (Inbox driver) provided by an OS (Operating System) generated in association with a device.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] When updating from an Inbox driver to an Outbox driver by a setup program, PnP (Plug And Play) may occur multiple times inside the OS (Operating System). Since the number of occurrences and the interval between occurrences of PnP depend on the time required for processing inside the OS and the search for WU (Windows Update), the setup program cannot grasp them. Therefore, when the OS is updating the driver or the like in the background, the setup program may misjudge that the appropriate driver is not applied and result in a setup failure. However, the user does not know the driver update status. For this reason, when the user tries to start using the device thinking that the installation is complete, the user cannot use the device because the OS is updating the driver. Thus, there has been a problem that the user cannot perform the intended operation and the convenience is reduced.

[0005] Therefore, the present invention provides an information processing device, a control method, and a program that can suppress a decrease in user convenience. [Means for solving the problem]

[0006] Therefore, the present invention is a program that installs and sets up a driver for a target device on an information processing device, and determines whether the computer of the information processing device is running Plug and Play on its operating system or not. means of obtaining information and, The acquisition result obtained by the acquisition means indicates that plug and play is not being performed, and the information processing device corresponds to the target device. 1 Types driver If there is no queue set, the driver for the target device will Applicable Ru Do Rival To the first type of driver Update Processing means for performing specific processing for It is characterized by being made to function as such. [Effects of the Invention]

[0007] According to the present invention, it is possible to provide an information processing device, a control method, and a program that can suppress a decrease in user convenience. [Brief explanation of the drawing]

[0008] [Figure 1] This is a block diagram showing the hardware configuration of an information processing device. [Figure 2] This diagram shows the hardware configuration of a communication device. [Figure 3] This is a block diagram showing the software function configuration of an information processing device. [Figure 4] This is a flowchart showing the USB setup process. [Figure 5] This is a flowchart illustrating the process of detecting USB devices. [Figure 6] This is a flowchart illustrating the queue generation confirmation process. [Figure 7] This diagram shows the screen displayed on the display unit during the USB setup process. [Figure 8]This diagram shows the screen displayed on the display unit during the USB setup process. [Figure 9] This diagram shows the screen displayed on the display unit during the USB setup process. [Figure 10] This diagram shows the screen displayed on the display unit during the USB setup process. [Modes for carrying out the invention]

[0009] Embodiments of the present invention will be described below with reference to the drawings.

[0010] Figure 1 is a block diagram showing the hardware configuration of the information processing device 101 in this embodiment. The information processing device 101 is equipped with an input interface 102, a CPU 103, a ROM 104, a RAM 105, an external storage device 106, and an output interface 107, and is connected to a display unit 108, a keyboard 109, a mouse 110, etc. Furthermore, the information processing device 101 is equipped with a network interface (first communication unit) 111 and a USB interface (second communication unit) 112.

[0011] The input interface 102 is an interface for receiving data input and operation instructions from the user when the mouse 110 or keyboard 109 is operated. The CPU 103 is the system control unit and is a processor that controls the entire information processing device 101. The ROM 104 stores fixed data such as control programs executed by the CPU 103, data tables, and embedded operating system (hereinafter referred to as OS) programs. In this embodiment, each control program stored in the ROM 104 performs software execution control such as scheduling, task switching, and interrupt processing under the management of the embedded OS stored in the ROM 104.

[0012] The RAM 105 is composed of an SRAM (Static Random Access Memory) etc. that requires a backup power supply. The data in the RAM 105 is retained by a primary battery for data backup (not shown), and important data such as program control variables can be stored without being volatile. Also, a memory area for storing the setting information of the information processing apparatus 101, the management data of the information processing apparatus 101, etc. is also provided in the RAM 105. Further, the RAM 105 is also used as the main memory and the work memory of the CPU 103.

[0013] The external storage device 106 stores an application that provides a printing execution function, a print job generation program that generates a print job interpretable by the communication device 201, etc. Also, the external storage device 106 stores various programs such as an information transmission / reception control program for transmitting and receiving information to and from the communication device 201 connected via the network interface 111 and the USB interface 112, and various information used by these programs. Note that a setup program (hereinafter referred to as the setup program) described later is also stored in the external storage device 106. In the present embodiment, the setup program installs a driver suitable for the communication device 201 in the information processing apparatus 101. In the present embodiment, the communication device 201 that is the target for installing the driver is defined as the target device.

[0014] The output I / F (interface) 107 is an interface that controls the display unit 108 to display data and notify the state of the information processing apparatus 101. The display unit 108 is composed of an LED (light emitting diode), an LCD (liquid crystal display), etc., and displays data and notifies the state of the information processing apparatus 101. Note that an operation unit such as a numerical input key, a mode setting key, a determination key, a cancellation key, a power key, etc. may be installed on the display unit 108 to receive an input from the user via the display unit 108.

[0015] The network interface 111 controls communication via a wireless LAN and communication processing via a wired LAN cable. Specifically, the network interface 111 is configured to connect to a communication device 201 or an external device existing outside the information processing device 101 and outside the communication device 201 via a wireless LAN or a wired LAN to perform data communication. The USB interface 112 controls USB connection via a USB cable. Specifically, the USB interface 112 is configured to connect to the communication device 201 via a USB cable to perform data communication.

[0016] FIG. 2 is a diagram showing a hardware configuration diagram of the communication device 201. The communication device 201 in the present embodiment includes a network I / F (interface) (communication unit) 252, a RAM 253, a print engine 256, a ROM 254, a CPU 255, a USB interface 257, and the like. A computer of the communication device 201 is formed by the CPU 255, the RAM 253, and the ROM 254. The network interface 252 controls communication via wireless and communication processing via a wired LAN cable.

[0017] The RAM 253 is composed of an SRAM or the like that requires a backup power supply. Since the data in the RAM 253 is held by a primary battery for data backup (not shown), important data such as program control variables can be stored without being volatile. Also, a memory area for storing the setting information of the communication device 201, the management data of the communication device 201, etc. is provided in the RAM 253. Further, the RAM 253 is also used as the main memory and the work memory of the CPU 255, and stores a reception buffer for temporarily storing print information received from the information processing device 101 and various types of information.

[0018] ROM254 stores fixed data such as control programs, data tables, and OS programs executed by CPU255. In this embodiment, each control program stored in ROM254 performs software execution control such as scheduling, task switching, and interrupt handling under the management of the embedded OS also stored in ROM254. CPU255 is the system control unit and is a processor that controls the entire communication device 201.

[0019] The print engine 256 performs image formation processing to form an image on a recording medium such as paper by adding a recording material such as ink to the recording medium, based on information stored in the RAM 253 or print jobs received from the information processing device 101, and outputs the print result. A print job is a job that causes the communication device 201 to perform image formation processing.

[0020] Figure 3 is a block diagram showing the software function configuration of the information processing device 101 in this embodiment. The functions of each block shown in Figure 3 are realized by the CPU 103 reading the program code of the setup program 310 into the RAM 105 and executing it. The setup program 310 detects the communication device 201 connected by a USB cable and designates the detected communication device 201 as the target device. The setup program 310 installs the driver associated with the target device into the information processing device 101.

[0021] The setup program 310 installs the printer driver 360 into the information processing device 101 if the target device is a printer. If the target device is a scanner, the setup program 310 installs the scanner driver 370 into the information processing device 101. In addition, the setup program 310 installs the appropriate utility 380 into the information processing device 101 depending on the type of target device.

[0022] The setup program 310 comprises a driver information detection unit 311, a USB device detection unit 312, and a queue generation confirmation processing unit 315. The driver information detection unit 311 obtains driver information for the target device from the driver INF file 350. The driver information includes the driver name. The USB device detection unit 312 detects the communication device 201 connected to the information processing device 101 by a USB cable. The setup program 310 designates the communication device 201 detected by the USB device detection unit 312 as the target device.

[0023] If the USB device detection unit 312 detects multiple communication devices 201, the setup program 310 designates the first detected communication device 201 as the target device. Alternatively, in another embodiment, the setup program 310 may display the device name and serial number on the display unit 108 as information about the multiple detected communication devices 201, prompting the user to select a target device. The information displayed on the display unit 108 by the setup program 310 may be other identification information, as long as it is information that can be used to identify the multiple communication devices 201. The queue generation confirmation processing unit 315 includes an Outbox queue detection unit 313 and a device node detection unit 314.

[0024] The Outbox queue detection unit 313 obtains a list of print queues installed on the information processing device 101. Furthermore, for each extracted print queue, the Outbox queue detection unit 313 determines whether the type of driver associated with the print queue is an Outbox driver. The device node detection unit 314 obtains a list of device classes to which the target device should be assigned and determines whether the target device is already assigned. For example, if the target device is a printer, the device node detection unit 314 obtains the printer device class. If there is a device among the devices assigned to the printer class whose information matches the device descriptor obtained from the target device, the device node detection unit 314 determines that the target device is already assigned.

[0025] When installing a device using a typical setup program, one possible procedure is to install the Outbox driver before initiating Plug and Play (PnP) for the USB device. Hereafter, this procedure will be referred to as the post-installation flow. In the post-installation flow, the Windows OS completes the device installation using the already installed Outbox driver instead of the Inbox driver. In other words, the setup program can perform the installation using the Outbox driver without spending time on the process of replacing the Inbox driver with the Outbox driver via WU (Windows Update).

[0026] However, depending on the version of the Windows OS, it may be necessary to apply a generic driver first and then update to an Outbox driver. For example, Windows 11 provides an IPP class driver for devices with IPP (Internet Printing Protocol) functionality. The IPP class driver is a generic driver for printing functions that utilize the IPP over USB standard. In Windows 11, the IPP class driver is a driver that is pre-installed within the OS, meaning it is a type of Inbox driver.

[0027] In Windows 11, even in a post-installation flow, the replacement process from the Inbox driver to the Outbox driver by the Windows Update (WU) occurs. During this process, the OS internally treats the IPP class driver assignment process and the Outbox driver replacement process as two different Plug and Play (PnP) operations. In other words, the OS internally treats it as if multiple PnP operations are occurring.

[0028] If multiple PnP events occur and none are completed, the device is not in a usable state, and therefore the user cannot start using it. The setup program notifying the user when all PnP events are complete allows the user to properly understand when to start using the device and begin using it. However, the number and intervals between PnP events depend on the time required for OS internal processing and WU searches, so typical setup programs cannot determine whether PnP is complete or not.

[0029] Therefore, in this embodiment, in an OS where PnP occurs multiple times, the setup program appropriately updates and installs the driver so that the device is correctly detected as available and notified to the user. The details of the setup program in this embodiment will be described below.

[0030] Figure 4 is a flowchart showing the USB setup process of the setup program 310 in this embodiment. Figures 7 to 10 show the screens displayed on the display unit 108 during the USB setup process. The USB setup process in this embodiment will be described below using the flowchart in Figure 4. The process shown in the flowchart in Figure 4 is performed by the CPU 103 loading the program code of the setup program 310 into the RAM 105 and executing it. Alternatively, some or all of the functions of the steps in Figure 4 may be implemented by hardware such as an ASIC or electronic circuit. The symbol "S" in the description of each process indicates a step in that flowchart.

[0031] When the USB setup process begins, the CPU 103 controls the setup program 310 in S401, which calls the driver information detection unit 311 from the driver INF file 350 to obtain driver information. Subsequently, the CPU 103 controls the setup program 310 in S402, which registers the device's Outbox driver with the information processing device 101 based on the driver information obtained in S401. In other words, this embodiment performs a post-insertion flow. Then, the CPU 103 controls the setup program 310 in S500, which calls the USB device detection unit 312 to detect the device connected to the information processing device 101 via USB. When S500 begins, the setup program 310 displays the connection instruction screen 700 shown in Figure 7 on the display unit 108, which instructs the connection of the USB device. Details of the USB device detection process in S500 will be described later.

[0032] Subsequently, in S404, the setup program 310 determines whether processing from the USB device detection unit 312 is complete, based on the action of the CPU 103. Upon receiving notification of processing completion, it determines "Yes" and proceeds to S600. When the setup program 310 detects that button 701 displayed on the connection instruction screen 700 has been pressed, it notifies the USB device detection unit 312 that processing has been interrupted. Subsequently, when the setup program 310 receives notification of processing interruption from the USB device detection unit 312, it proceeds to S40 3 In this case, it was determined to be NO and S40 6 It will transition to [this].

[0033] When S600 starts, the setup program 310 hides the connection instruction screen 700. Then, it displays the processing screen 800 shown in Figure 8 on the display unit 108 to indicate that it is waiting for the completion of print queue generation, calls the queue generation confirmation processing unit 315, and waits for the completion of print queue generation. Details of the print queue generation confirmation process in S600 will be described later.

[0034] Subsequently, in S406, the setup program 310 determines whether the queue creation confirmation process has been completed, based on the actions of the CPU 103. If it receives notification from the queue creation confirmation processing unit 315 that the process has been completed, it determines that it is YES, and proceeds to S40. 5 The process then proceeds to S40. When the setup program 310 detects that the button 801 displayed on the processing screen 800 has been pressed, it notifies the queue generation confirmation processing unit 315 of the interruption of processing. Subsequently, when the setup program 310 receives the notification of the interruption of processing from the queue generation confirmation processing unit 315, it proceeds to S40. 4 In this case, it was determined to be NO and S40 6 Transition to

[0035] Then, due to the action of CPU103, S40 5 The setup program 310 then hides the processing screen 800 and displays the success screen 900 shown in Figure 9 on the display unit 108 to indicate that the USB device setup was successful. When the setup program 310 detects that the button 901 displayed on the success screen 900 has been pressed, it terminates the display on the setup program 310's screen and ends the USB setup process.

[0036] Due to the action of CPU103, S40 4 Or S40 4 From S40 6 If the process is interrupted, the setup program 310 hides the connection instruction screen 700 or the processing screen 800. Then, it displays the interruption screen 1000 shown in Figure 10 on the display unit 108 to indicate that the USB device setup has been interrupted. When the setup program 310 detects that the button 1001 displayed on the interruption screen 1000 has been pressed, it terminates the screen display of the setup program 310. After terminating the screen display, the setup program 310 terminates the USB setup process.

[0037] Figure 5 is a flowchart showing the USB device detection process performed in S500 of Figure 4. The USB device detection process in this embodiment will be explained below using the flowchart in Figure 5. The process shown in the flowchart in Figure 5 is performed by the CPU 103 loading the program code of the setup program 310 into the RAM 105 and executing it. Alternatively, some or all of the functions of the steps in Figure 5 may be implemented by hardware such as an ASIC or electronic circuit. The symbol "S" in the description of each process means that it is a step in the flowchart.

[0038] When the USB device detection process begins, the CPU 103, in S501, detects whether a notification has been received instructing the USB device detection unit 312 to cancel the process. The cancellation notification is sent to the USB device detection unit 312 when the setup program 310 detects that the button 701 displayed on the connection instruction screen 700 has been pressed. If a cancellation notification is received, the USB device detection unit 312 determines YES in S501 and proceeds to S505. Subsequently, in S505, the USB device detection unit 312 notifies the calling setup program 310 that the device detection has been canceled. After that, the USB device detection process terminates.

[0039] If no cancellation notification is received in S501, the USB device detection unit 312 determines NO and proceeds to S502. Due to the action of the CPU 103, in S502 the USB device detection unit 312 attempts to detect the communication device 201 that is connected to the information processing device 101 via USB. In S503, due to the action of CPU 103, if the USB device detection unit 312 fails to detect a device that matches the driver information obtained in S401, it determines NO and returns to S501. If it detects a device that matches the driver information obtained in S401, it determines YES and proceeds to S504. Subsequently, in S504, due to the action of CPU 103, the USB device detection unit 312 notifies the calling setup program 310 that device detection is complete. After that, the USB device detection process ends.

[0040] Figure 6 is a flowchart showing the queue generation confirmation process performed in S600 of Figure 4. The queue generation confirmation process in this embodiment will be explained below using the flowchart in Figure 6. The process shown in the flowchart in Figure 6 is performed by the CPU 103 loading the program code of the setup program 310 into the RAM 105 and executing it. Alternatively, some or all of the functions of the steps in Figure 6 may be implemented by hardware such as an ASIC or electronic circuit. The symbol "S" in the description of each process means that it is a step in the flowchart.

[0041] When the queue generation confirmation process begins, the CPU 103, in S601, causes the queue generation confirmation processing unit 315 to detect whether or not a notification instructing the cancellation of this process has been received. The cancellation notification is sent to the queue generation confirmation processing unit 315 when the setup program 310 detects that the button 801 displayed on the processing screen 800 has been pressed. If a cancellation notification is received, the queue generation confirmation processing unit 315 determines YES in S601 and proceeds to S612. Subsequently, the CPU 103, in S612, causes the queue generation confirmation processing unit 315 to notify the calling setup program 310 that the process has been canceled. After that, the queue generation confirmation process terminates.

[0042] If no cancellation notification is received in S601, the queue generation confirmation processing unit 315 determines NO and proceeds to S602. Due to the action of the CPU 103, in S602, the queue generation confirmation processing unit 315 determines whether the OS is performing PnP (PnP determination). Specifically, the queue generation confirmation processing unit 315 obtains a status indicating whether the OS is performing PnP by executing the OS API (Application Programming Interface). If the OS is performing PnP, the print queue and device status are not yet available, so the queue generation confirmation processing unit 315 does not perform any determination processing regarding the print queue and device status until it obtains a status indicating that PnP is not being performed. This reduces the risk that the queue generation confirmation processing unit 315 will perform driver update processing (described later) and interfere with the OS's PnP processing. In other words, the setup program 310 of this embodiment performs a post-insertion flow as described above. That is, the Outbox driver for the device is already registered in S402. However, in this embodiment, even with a post-installation flow, the replacement process from the Inbox driver to the Outbox driver by the WU occurs without the setup program 310's involvement. In other words, multiple PnP operations occur within the OS. Therefore, when PnP is not running, a processing timer is started as described later, and when PnP is running, the processing timer is deleted (cancelled). Thus, the processing timer described later is a timer that counts up while PnP is not running.

[0043] In S602, if the queue generation confirmation processing unit 315 determines it is YES, it proceeds to S603. Also, in S602, if it obtains the status of OS PnP completion, the queue generation confirmation processing unit 315 determines it is NO and proceeds to S604. If it proceeds to S603, the CPU 103 causes the queue generation confirmation processing unit 315 to delete (reset) the processing timer (described later in S605) stored inside the queue generation confirmation processing unit 315. Then, it returns to the first process S601 of this flowchart and performs process S601 again. Also, if it proceeds from S602 to S604, the CPU 103 causes the queue generation confirmation processing unit 315 to determine whether the processing timer (described later in S605) inside the queue generation confirmation processing unit 315 is already running.

[0044] If the PnP process is completed immediately, the timer has not started, so the queue generation confirmation processing unit 315 determines NO in S604 and proceeds to S605. If the timer has started in S604, the queue generation confirmation processing unit 315 determines YES and proceeds to S606. When proceeding from S604 to S605, the CPU 103 activates the processing timer in the queue generation confirmation processing unit 315. This process allows the queue generation confirmation processing unit 315 to measure and understand the time elapsed since the completion of the PnP process. After that, it proceeds to S606.

[0045] In S606, the queue generation confirmation processing unit 315, acting on the CPU 103, determines whether a print queue matching the driver registered in S402 of Figure 4 exists in the information processing device 101. This process is executed when the queue generation confirmation processing unit 315 calls the Outbox queue detection unit 313. If the Outbox queue detection unit 313 detects an Outbox queue (Yes), the process proceeds from S606 to S610. If the Outbox queue detection unit 313 does not detect an Outbox queue (No), the process proceeds from S606 to S607.

[0046] If the process moves to S607, the queue generation confirmation processing unit 315, acting on the CPU 103, determines whether a certain amount of time has elapsed since the processing timer started in S605 was activated. In other words, the queue generation confirmation processing unit 315 checks whether a certain amount of time has elapsed since the OS determined that PnP was complete. If a certain amount of time has elapsed, the queue generation confirmation processing unit 315 determines YES in S607 and moves to S608. If a certain amount of time has not elapsed, the queue generation confirmation processing unit 315 determines NO in S607 and returns to S601 (re-evaluation).

[0047] If the determination in S606 is NO, there is no print queue, so the queue generation confirmation processing unit 315 needs to instruct the OS to update the driver. The driver update process can forcibly trigger driver installation by the OS. By performing the driver update process, the OS associates the Outbox driver and generates a print queue. However, depending on the OS version, multiple PnP events may occur, and if the queue generation confirmation processing unit 315 immediately executes the driver update process, it may interfere with subsequent OS PnP processes. In other words, if the driver update process is performed after the first PnP has finished but before the second PnP is executed, the OS PnP process may be inhibited. Therefore, in S607, the queue generation confirmation processing unit 315 decides whether to wait without performing the driver update process based on whether a certain amount of time (predetermined time) has elapsed when PnP is not currently being executed.

[0048] In S608, due to the action of CPU 103, the queue generation confirmation processing unit 315 instructs the OS to update the driver. Specifically, the queue generation confirmation processing unit 315 instructs the OS to update the driver based on the driver information obtained in S401 in Figure 4, using the OS API.

[0049] Furthermore, it is desirable to perform the process of updating the driver using the OS API only when there is no print queue to which the expected driver has been assigned. This is because the OS API in question can take time to complete. In addition, since the OS API in question has the function of forcing the installation of a specified driver, there is a possibility that the latest driver that has already been assigned may be replaced with an older driver. The queue generation confirmation processing unit 315 executes the OS API in question only when it is necessary to update the driver associated with the print queue, thereby enabling efficient Outbox queue generation while avoiding driver downgrades. Moreover, even in cases where the OS cannot assign the Outbox driver via WU through PnP, the driver update process using the OS API is effective.

[0050] Subsequently, due to the action of CPU 103, in S609, the queue generation confirmation processing unit 315 determines whether the API was successful or not based on the notification of the processing result from the OS API. In S609, if the OS API is successful, the queue generation confirmation processing unit 315 determines YES and proceeds to S610. On the other hand, if the OS API fails, the queue generation confirmation processing unit 315 determines NO in S609 and returns to S601, the first process in this flowchart (re-evaluation).

[0051] Then, due to the action of the CPU 103, in S610, the queue generation confirmation processing unit 315 determines whether or not the target device is recognized as a printer device by the information processing device 101 (printer class detection). This process is executed when the queue generation confirmation processing unit 315 calls the device node detection unit 314. If the device node detection unit 314 can recognize the target device as a printer, the queue generation confirmation processing unit 315 proceeds to S611. If the device node detection unit 314 does not recognize the target device as a printer, the queue generation confirmation processing unit 315 returns to S601, the first process in this flowchart.

[0052] Subsequently, due to the action of CPU 103, the queue creation confirmation processing unit 315 in S611 notifies the calling setup program 310 that the queue creation confirmation process has been completed, and terminates the queue creation confirmation process.

[0053] Thus, the setup program of this embodiment is configured to perform processing while checking whether PnP is currently running, based on the premise that there may be an OS where PnP may occur multiple times. This makes it possible to update and install drivers appropriately and prevents users from mistakenly attempting to use a device while it is being installed. As a result, users can use USB devices more reliably and easily. In addition, this embodiment makes it possible to reduce the risk of updating drivers while the OS is performing PnP processing. This makes it possible to reduce the risk that the setup program will cause the OS to malfunction during USB device setup. In this way, this embodiment provides an information processing device, control method, and program that can suppress a decrease in user convenience.

[0054] (Other embodiments) The present invention can also be realized by supplying a program that implements one or more of the functions of the embodiments described above to a system or device via a network or storage medium, and by having one or more processors in the computer of that system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC) that implements one or more functions.

[0055] This embodiment includes the following configurations, methods, and programs.

[0056] (Program 1) A program that installs and sets up the driver for a target device on an information processing device, The computer of the aforementioned information processing device A PnP determination means for determining whether or not the operating system's plug and play is running, The aforementioned target device includes a detection means for detecting whether or not the first driver to be installed on the target device is applied to the target device, If the detection means detects that the first driver is not applied, the driver update means updates the applied second driver to the first driver. A program characterized by being designed to function as such.

[0057] (Program 2) The program according to Program 1, wherein the driver update means updates the applied second driver to the first driver when the first driver is not applied and a predetermined time has elapsed since the PnP determination means determined that it is not currently running.

[0058] (Program 3) The program according to Program 2, characterized in that the measurement of the predetermined time is reset when the PnP determination means determines that execution is in progress.

[0059] (Program 4) The program according to program 3, characterized in that the measurement of the reset predetermined time is performed again when the PnP determination means determines that it is not currently running.

[0060] (Program 5) A printer class detection means for detecting whether the target device is recognized as a printer, If the PnP determination means determines that it is not currently running and the detection means determines that it is not being applied, the first re-determination means performs the PnP determination means again. If the PnP determination means determines that it is not currently running, and the driver update means fails to perform the update, a second re-determination means performs the PnP determination means again. If the PnP determination means determines that it is not currently running, and the printer class detection means detects that the target device is not recognized as a printer, a third re-determination means performs the PnP determination means again. A program according to any one of programs 1 to 4, characterized in that it is further made to function as such.

[0061] (Program 6) The printer class detection means is the program according to program 5, characterized in that it performs the detection after the detection means has performed the detection.

[0062] (Program 7) The driver update means is a program according to any one of programs 1 to 6, characterized in that the driver update means updates the second driver to the first driver after the detection means has performed the detection.

[0063] (Program 8) The program according to program 5, wherein the printer class detection means performs the detection after the driver update means updates the second driver to the first driver.

[0064] (Program 9) A program according to any one of programs 1 to 8, further comprising a detection means for detecting connected devices.

[0065] (Program 10) The program according to program 9, characterized in that detection by the detection means is performed after detection by the detection means.

[0066] (Program 11) A program according to any one of programs 1 to 10, characterized in that it functions as a notification means for notifying that the setup is complete.

[0067] (Program 12) The program according to program 11, characterized in that the notification means is a display means that displays on the screen that the setup is complete.

[0068] (Composition 1) An information processing device that installs and sets up the driver for the target device, A PnP determination means for determining whether or not the operating system's plug and play is running, The aforementioned target device includes a detection means for detecting whether or not the first driver to be installed on the target device is applied to the target device, An information processing apparatus comprising: a driver update means for updating the applied second driver to the first driver when the detection means detects that the first driver is not applied.

[0069] (Method 1) A control method for an information processing device that installs and sets up the driver for a target device, A PnP determination step that determines whether or not the operating system's plug and play is running, A detection step to detect whether the first driver to be installed on the target device is applied to the target device, A control method for an information processing device, characterized by comprising: a driver update step, which updates the applied second driver to the first driver if it is detected in the detection step that the first driver is not applied. [Explanation of Symbols]

[0070] 101 Information Processing Device 102 Input Interface 103 CPU 108 Display section 112 USB Interfaces 201 Communication equipment 310 Setup Program 312 USB device detection unit 313 Outbox Queue Detection Unit 315 Queue generation confirmation processing unit

Claims

1. A program that installs and sets up the driver for a target device on an information processing device, The computer of the aforementioned information processing device A means for obtaining information on whether or not the operating system's plug-and-play is running, A program characterized in that, when the acquisition result obtained by the acquisition means indicates that plug and play is not being performed, and the information processing device does not have a queue set with a first type of driver corresponding to the target device, the program is configured to function as a processing means for performing a specific process to update the driver applied as the driver for the target device to the first type of driver.

2. The program according to claim 1, characterized in that the processing means does not perform the specific processing if there is a queue in which a driver of the first type corresponding to the target device is set.

3. The program according to claim 1, characterized in that the acquisition by the acquisition means and the specific processing by the processing means are performed in response to the detection of the connection of the target device corresponding to the first type of driver.

4. The program according to claim 1, characterized in that the first type of driver is an Outbox driver.

5. The program according to claim 1, characterized in that the acquisition means acquires a status indicating whether the plug and play is running using the Application Programming Interface of the operating system.

6. The program according to claim 1, characterized in that the specific processing is a process of instructing the operating system to update to the first type of driver using the Application Programming Interface of the operating system.

7. The computer of the information processing device, The information processing device is further configured to function as a determination means for determining whether there is a queue in which a driver of the first type corresponding to the target device is set. The program according to claim 1, characterized in that the processing means performs the specific processing when the determination means determines that there is no queue in which a driver of the first type corresponding to the target device is set.

8. The program according to claim 7, wherein the determination means obtains a list of queues installed on the information processing device and determines for each queue whether the type of driver associated with the queue is a driver of the first type, thereby determining whether there is a queue on which a driver of the first type corresponding to the target device is set.

9. The program according to claim 1, characterized in that the processing means performs the specific processing when there is no queue set for the first type of driver corresponding to the target device, and a predetermined time has elapsed since the acquisition result from the acquisition means indicated that plug and play is not being performed.

10. The computer of the information processing device, After receiving a notification indicating that the process of updating to the first type of driver has been successfully completed in response to the aforementioned specific process, a determination means for determining whether or not the target device is recognized as a printer is provided. The program according to claim 1, further characterized in that, if the determination means determines that the target device is not recognized as a printer, the control means further functions to control the acquisition by the acquisition means and the specific processing by the processing means to be performed again.

11. The determination means determines whether the target device is recognized as a printer even when there is a queue set with the first type of driver corresponding to the target device and the specific processing is not performed. The program according to claim 10, characterized in that the control means controls the acquisition by the acquisition means and the processing means to perform the specific processing even if there is a queue in which a driver of the first type corresponding to the target device is set and the specific processing is not performed, when the determination means determines that the target device is not recognized as a printer.

12. The program according to claim 10, characterized in that the determination means obtains the device class of a printer and determines that the target device is recognized as a printer if there is a device among the devices assigned to the device class of a printer that matches the information of the device descriptor obtained from the target device.

13. The program according to claim 10, characterized in that the control means controls the program to notify the user of a notification corresponding to the successful setup of the target device when the determination means determines that the target device is recognized as a printer.

14. The program according to claim 1, characterized in that the target device is a printer.

15. The program according to claim 1, characterized in that the acquisition means acquires information on whether plug and play is being executed when the target device is connected to the information processing device via USB.

16. A computer-readable storage medium storing the program described in any one of claims 1 to 15.

17. An information processing apparatus characterized by having each of the means of the program described in any one of Claims 1 to 15.

18. A control method for an information processing device for installing and setting up a driver for a target device, A retrieval step to obtain information on whether or not the operating system's Plug and Play is running, A control method for an information processing device, characterized by comprising: a processing step of performing a specific process to update the driver applied as the driver for the target device to the first type of driver when the acquisition result in the acquisition step indicates that plug and play is not being performed, and the information processing device does not have a queue set with a first type of driver corresponding to the target device.

Citation Information

Patent Citations

  • Information processing method, control program, information processing apparatus, peripheral device, response method, alternate response apparatus and network system

    JP2003006133A

  • System and method to provide hardware driver installation

    JP2003162494A

  • Information processing device and program, and control method

    JP2017174117A

  • Information processing device, driver installation method and program

    JP2018194910A

  • Application program

    JP2021092876A