Program to install drivers

The driver installation program addresses redundant confirmation prompts by determining if an older version is installed and installing the necessary certificate, facilitating smooth updates without redundant security warnings.

JP2026064015APending Publication Date: 2026-04-13CANON KK
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-10-01
Publication Date
2026-04-13

AI Technical Summary

Technical Problem

Conventional driver installation systems prompt users to confirm the installation of updated drivers even if they have previously installed a driver from the same issuer, causing redundancy and inconvenience due to changes in digital signatures between versions.

Method used

A driver installation program that determines if an older version of the same type of driver is already installed, installs the corresponding certificate, and then proceeds with the installation without displaying redundant security warning screens.

Benefits of technology

Improves user convenience by avoiding redundant confirmation screens during driver updates, ensuring seamless installation of new versions without unnecessary prompts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026064015000001_ABST
    Figure 2026064015000001_ABST
Patent Text Reader

Abstract

This improves the convenience of updating and installing new versions of drivers. [Solution] A program for installing a driver for controlling peripheral devices into an information processing device, characterized in that the information processing device is caused to perform the following steps: a determination step of determining whether a base driver, which is an older version of the same type as the driver, is installed in the information processing device; a certificate installation step of installing a certificate corresponding to the digital signature included in the driver set of the base driver into the information processing device if the determination step determines that the base driver is installed; and a driver installation step of installing the driver files included in the driver set of the driver.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a program for installing a driver, a method for installing the driver, and an information processing apparatus.

Background Art

[0002] A typical printing control program for controlling a printer is a printer driver for Windows (registered trademark). A driver set of the printer driver for Windows (registered trademark) includes a CAT file (catalog file). A digital signature can be given to the catalog file for preventing forgery of the driver (for example, see Patent Document 1).

[0003] A digital signature is an encryption of a hash value of a file to which the signature is given with a private key, and is for proving whether the file has been tampered with. A certificate is given to the digital signature, and the hash value can be extracted by decrypting with a public key in the certificate. By comparing the extracted hash value with the hash value of the actual catalog file, the validity of the catalog file is proved, and it is possible to verify whether the contents of each file in the driver set have been changed.

[0004] On the other hand, when installing a printer driver on an information processing apparatus such as a PC (personal computer), a screen for confirming with the user whether to install may be displayed depending on the issuer of the digital signature given to the catalog file.

Prior Art Documents

Patent Documents

[0005]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0006] With the conventional technology described above, a confirmation screen may appear during driver installation. Even if the user authorizes the installation on the confirmation screen during the initial driver installation, the confirmation screen may reappear when installing an updated version of the driver. This can occur when the digital signature changes between versions, for example.

[0007] It is redundant for a user to be prompted to display a confirmation screen again, even though they have already installed a previous version of the driver and clearly intend to install the new version.

[0008] Therefore, the present invention aims to improve the convenience of updating and installing a new version of the driver. [Means for solving the problem]

[0009] The present invention is a program for installing a driver for controlling a peripheral device into an information processing device, characterized in that it causes the information processing device to execute a determination step of determining whether a base driver, which is an older version of the same type as the driver, is installed in the information processing device; a certificate installation step of installing a certificate corresponding to the digital signature included in the driver set of the base driver into the information processing device if the determination step determines that the base driver is installed; and a driver installation step of installing the driver files included in the driver set of the driver. [Effects of the Invention]

[0010] According to the present invention, the convenience of updating and installing a new version of the driver can be improved. [Brief explanation of the drawing]

[0011] [Figure 1]This diagram shows the system configuration. [Figure 2] This is a diagram showing the hardware configuration of a computer. [Figure 3] This is a diagram showing the software configuration of a computer. [Figure 4] This figure shows the file structure of the driver installation set in Example 1. [Figure 5] This diagram shows the screen transitions displayed by the installer. [Figure 6] This is a diagram showing a security warning screen displayed by the operating system. [Figure 7] This diagram shows the processing flow of the installer in Example 1. [Figure 8] This diagram shows the installer's processing flow in Example 2. [Figure 9] This is an example of the driver's proprietary storage information in Example 2. [Figure 10] This figure shows the file structure of the driver installation set in Example 3. [Figure 11] This figure shows the security warning screen displayed by the OS during scanner driver installation in Example 3. [Figure 12] This is an example of proprietary information stored by the scanner driver in Example 3. [Figure 13] This diagram shows the screen transitions displayed by the installer during an update installation. [Modes for carrying out the invention]

[0012] [Example 1] The embodiments for carrying out the present invention will be described below with reference to the drawings.

[0013] Figure 1 shows the connection configuration of the computer 1000 and printer 2000 in the printing system of this embodiment. The computer 1000 and printer 2000 are connected via a network or USB, and are able to communicate with each other.

[0014] Figure 2 is a block diagram showing the hardware configuration of computer 1000. Computer 1000 is entirely controlled by a control unit 1040 composed of a CPU 1041 and a memory 1042.

[0015] The display unit 1010 indicates an output device such as a display, and the operation unit 1020 indicates an input device such as a mouse, keyboard, or touch panel. Also, the storage unit 1030 is a storage medium such as a hard disk or SSD, and various software necessary for the operation of computer 1000 is stored therein. The OS (Operating System) 1110 and drivers described later are also stored in the storage unit 1030.

[0016] The network communication unit 1050 connects to a network and performs input / output of data with an external device. The USB communication unit 1060 performs input / output of data with an external device through a USB connection. Computer 1000 and printer 2000 are connected via these network communication unit 1050 or USB communication unit 1060.

[0017] Note that all the software processes in this embodiment are realized by loading the software stored in the storage unit 1030 into the memory 1042 in the control unit 1040 and executed by the CPU 1041. CPU is the abbreviation of Central Processing Unit. Also, the network in this embodiment is a means for performing input / output of data with an external device, and there is no need to communicate with an external server or the like.

[0018] Figure 3 is a block diagram showing the software configuration of computer 1000 regarding the driver installation process of this embodiment. All of these software are stored in the storage unit 1030. The application 1100 refers to any software such as document creation software or spreadsheet software, and the driver installer 1210 described later is also one of the applications 1100.

[0019] OS1110 stands for Operating System and is the software that controls the basic operation of computer 1000. OS1110 has a driver installation control unit 1111 and a certificate management unit 1113, and also has data areas called driver store 1112 and certificate store 1114.

[0020] The driver installation control unit 1111 controls the installation of drivers provided externally to the OS 1110 into the OS 1110. Here, a driver is software used by the computer 1000 to control peripheral devices 2000, and is generally provided by the vendor (manufacturer) of the peripheral devices 2000. "Installing a driver into the OS 1110" means adding the driver provided by the vendor to the OS 1110 so that the peripheral devices can be used by the computer 1000 under the management of the OS 1110.

[0021] The driver installation control unit 1111 verifies the driver to be installed and stores it in the driver store 1112. Therefore, the driver store 1112 contains drivers for a wide variety of peripheral devices.

[0022] The certificate management unit 1113 manages the certificates registered in OS1110. The certificate store 1114 is managed by the certificate management unit 1113 and stores various certificates used by OS1110. Here, a certificate proves the authenticity of a digital signature, and by using the public key contained in the certificate, a hash value can be extracted from the digital signature, proving that the signed file has not been tampered with.

[0023] Certificate information includes the issuer, version information, serial number, public key, and expiration date. When a certificate expires, it needs to be reissued with a new expiration date, and the public key and other information must be updated. Certificates from issuers trusted by the administrator or user of computer 1000 are stored in the certificate store 1114. In this embodiment, certificates with different expiration dates are considered separate certificates with different serial numbers and public keys, and are stored in the certificate store 1114 as separate certificates.

[0024] Figure 4 shows the configuration of the driver installation set in this embodiment. Figure 4(a) shows the file structure of the initial version driver installation set A1200, and Figure 4(b) shows the file structure of the upgraded driver installation set B1300.

[0025] Installation set A1200 is a set of files provided by the vendor and includes the files described below. Installer (EXE) 1210 is application 1100 for installing the driver, and when executed by a user with administrator privileges, it installs driver file A1250 to OS 1110.

[0026] Driver set A1220 represents the driver-related files before installation and includes setup information file A(INF)1230, catalog file A(CAT)1240, and driver file A(CAB)1250.

[0027] Setup information file A(INF)1230 contains the information necessary to install driver file A1250. Specifically, INF file 1230 contains information such as the driver type and version, the file name of catalog file A1240, and the file name and installation location of driver file A1250.

[0028] Catalog file A(CAT)1240 is used during the installation of driver file A1250 and is used to verify driver set A1220. Catalog file A(CAT)1240 contains the digital signature A1241 and certificate A1242 of driver file A1250, and is used to check whether the signed driver file A1250 has been tampered with.

[0029] Driver file A(CAB)1250 is the main driver to be installed, and is a compressed file containing executable programs and data files for controlling peripheral devices. Driver set A1220 is version 1.0, and the digital signature A1241 certificate is assumed to have certificate A1242, which expires on December 31, 2024.

[0030] Installation set B1300 has the same file structure as installation set A1200, but it contains driver set B1320 as an upgraded driver. In this example, the installer (EXE) 1210 included in installation set B1300 is the same as that in installation set A1200, but a different installer with added features or other improvements may also be used.

[0031] Driver set B1320 contains setup information file B(INF)1330, catalog file B(CAT)1340, and driver file B(CAB)1350. Catalog file B(CAT)1340 contains the digital signature B1341 of driver file B1350. The certificate for digital signature B1341 is certificate B1342, which expires on December 31, 2025, and is a different certificate from certificate A1242.

[0032] Figure 5 shows the screen transitions that installer 1210 displays on the computer 1000's display when a user runs installer 1210 of installation set A1200. Here, we will explain the screen transitions when installer 1210 is run without certificate A1242 installed in certificate store 1114.

[0033] Screen 1 (1410) is the screen displayed by installer 1210 at startup. When the "Next" button is pressed, installer 1210 displays screen 2 (1420). Screen 2 detects whether the printer corresponding to the driver to be installed is currently connected to computer 1000. Once the detection is complete, installer 1210 displays screen 3 (1430).

[0034] Screen 3 (1430) displays a list of printers detected on Screen 2 (1420), allowing the user to select which printer driver to install. This driver is designated as Printer 2000 and corresponds to Printer A. Once the user selects the printer to install and presses the "Next" button, installer 1210 displays Screen 4 (1440).

[0035] Screen 4 (1440) is a screen that notifies the user that the driver installation will now begin. When the "Next" button is pressed, the installer 1210 displays screen 5 (1450) and begins the driver installation. The driver installation is performed by the installer 1210 calling the driver installation API provided by the driver installation control unit 1111 of the OS 1110. At that time, the installer 1210 specifies the setup information file 1230 in driver set A1220.

[0036] If certificate A1242, included in the driver set A1220 to be installed, is not installed in certificate store 1114, OS1110 displays a security warning screen. Details of the security warning screen will be described later using Figure 6. Once the driver installation is complete, installer 1210 displays screen 6 (1460) to notify the user that the installation is complete and then terminates.

[0037] Figure 6 shows the security warning screen 1500 displayed by the OS 1110 during driver installation while the installer 1210 is displaying the aforementioned screen 5 (1450).

[0038] When the API for driver installation is called, OS1110 retrieves the filename of catalog file A1240, which is specified in the setup information file A1230. OS1110 then refers to catalog file A1240 with the retrieved filename and identifies the certificate corresponding to digital signature A1241 contained in catalog file A1240.

[0039] If the OS1110 does not find the identified certificate in the OS1110 certificate store 1114, it displays a security warning screen 1500. The security warning screen 1500 contains information about the issuer of digital signature 1241, and asks the user whether to install the driver with digital signature A1241 from this issuer. If the "Install" button is pressed, the OS1110 starts installing the specified driver. If the "Do not install" button is pressed, the OS1110 cancels the driver installation.

[0040] The security warning screen 1500 also includes a checkbox asking whether to always trust drivers with certificates from the same issuer as the digital signature A1241.

[0041] If this setting is enabled and the "Install" button is pressed, OS1110 will install the corresponding certificate into certificate store A1114. Therefore, in the future, when installing drivers with the same certificate for the driver's digital signature, the installation will proceed without displaying security warning screen 1500. On the other hand, if this setting is disabled and the "Install" button is pressed, OS1110 will display security warning screen 1500 again the next time a driver with the same digital signature is installed.

[0042] In this way, OS1110 displays security warning screen 1500 to the user, which is effective in preventing drivers signed by suspicious publishers from being installed without the user's knowledge. In this embodiment, it is assumed that the installation was performed with the "Always trust" checkbox checked.

[0043] Next, we will show the screen transitions that installer 1210 displays on the computer 1000's display when the installer 1210 of the upgraded driver, installation set B1300, is executed. The basic screen transitions are the same as in Figure 5, so we will omit the details.

[0044] In conventional technology, the certificate B1342 attached to the digital signature B1341 of the driver in installation set B1300 is different from the certificate A1242 of the previously installed driver. Therefore, the confirmation screen in Figure 6 is displayed again while screen 5 (1450) is being displayed.

[0045] According to the present invention, by applying the processing flow in Figure 7, a new version of the driver can be installed without displaying the confirmation screen in Figure 6. Alternatively, the screen transitions during the installation of an upgraded driver may be as shown in Figure 13. In Figure 13, screens similar to those in Figure 5 are indicated with the same numbers. If the installer 1210 determines that an older driver exists, the installer 1210 may display a screen to the user asking whether or not to update the driver, as shown in screen 4b (1940).

[0046] If the user clicks the "Yes" button on screen 4b (1940), installer 1210 displays screen 5 (1450) and begins installing the driver. If the user clicks the "No" button on screen 4b (1940), installer 1210 displays screen 7 (1970) to notify the user that the installation has been canceled and then terminates.

[0047] The following explanation focuses on the features of the invention, describing the flow in which the installer 1210, which embodies the present invention, installs a driver on the OS 1110, using Figure 7. All processes described here are executed by the CPU 1041 after the installer 1210, stored in the storage unit 1030 of the computer 1000, is loaded into memory 1042. The processes in Figure 7 are performed while the installer 1210 is displaying screen 5 (1450).

[0048] First, we will explain the process flow when running installer 1210 of installation set A1200 and installing the previous version of the driver on OS1110 for the first time. The user starts installer 1210 and proceeds with the operation shown on the installation screen in Figure 5.

[0049] When screen 5 (1450) is displayed, installer 1210 obtains a list of drivers installed on OS1110 (S100). Specifically, installer 1210 uses the OS API to obtain a list of drivers installed on OS1110 and a list of version information for the installed drivers.

[0050] Next, the installer 1210 determines from the list information obtained in S100 whether an older version of the same type of driver (base driver) as the driver currently being installed is already installed (S101). S101 is an example of a determination process and determination method.

[0051] Here, when installer 1210 of installation set A1200 is executed, it is assumed that no older drivers of the same type are installed on OS1110. Therefore, S101 determines it to be No. Installer 1210 calls the API for driver installation on OS1110.

[0052] OS1110 determines that certificate A1242, which corresponds to digital signature A1241 contained in catalog file A1240, does not exist in OS1110's certificate store 1114, and displays a security warning screen 1500 (S107). In this embodiment, it is assumed that the user clicked the "Install" button on the displayed security warning screen 1500 with the checkbox for whether to always trust drivers with certificates from the same issuer checked.

[0053] When the "Install" button is pressed, OS1110 installs driver file A1250 from installation set A1200 (S106). S106 is an example of the driver installation process and driver installation method.

[0054] As a result of the user operation described above, OS1110 installs certificate A1242 into certificate store 1114, and certificate A1242 is installed in the certificate store 1114 of OS1110.

[0055] Next, we will explain the process flow for installing a new version of the driver on OS1110 by running installer 1210 of installation set B1300, starting from the state where the drivers from installation set A1200 have been installed. The user starts installer 1210 of installation set B1300. Installer 1210 displays screen 5 (1450) and obtains a list of drivers installed on OS1110 (S100).

[0056] Next, installer 1210 checks the list of drivers installed on OS1110 obtained in S100 to determine if an older version of the same type of driver as the one currently being installed is already installed (S101). In this case, when installer 1210 for installation set B1300 is executed, the driver from installation set A1200 is already installed on OS1110 as an older version of the same type of driver. Therefore, S101 determines "Yes".

[0057] Next, installer 1210 retrieves digital signature B1341 from catalog file B1340 within driver set B1320 (S102). Then, installer 1210 identifies certificate B1342 from the retrieved digital signature B1341 and checks if certificate B1342 exists in the certificate store 1114 of OS 1110 (S103). Specifically, installer 1210 retrieves the serial number of certificate B1342 contained in digital signature B1341 and checks if a certificate with the same serial number exists in the certificate store 1114.

[0058] While the method described here involves determining if an identical certificate exists in certificate store 1114 by using the serial number, it is also acceptable to determine identity using the checksum (thumbprint) value or other values.

[0059] If no corresponding certificate exists in certificate store 1114, installer 1210 obtains certificate B1342 from digital signature B1341 (S104). Next, installer 1210 installs certificate B1342 into certificate store 1114 (S105). The installation of certificate B1342 is performed by installer 1210 calling a certificate installation API provided by the certificate management unit 1113 of OS 1110. Note that S105 is an example of the certificate installation process and certificate installation method.

[0060] Finally, installer 1210 calls the API for driver installation on OS1110 and installs driver file B1350 from installation set B1300 onto OS1110 (S106). At this time, in S105, certificate B1342 for digital signature B1341 included in driver set B1320 is installed on OS1110 before the driver installation is performed. Therefore, the driver can be installed without displaying the security warning screen 1500 from OS1110.

[0061] In this embodiment, we have shown an example where certificate B1342 for digital signature B1341 included in the new version of driver set B1320 is different from certificate A1242 for digital signature A1241 included in the previous version of driver set A1220.

[0062] However, there are cases where the same certificate is used as long as certificate A1242 is still valid. In such cases, installer 1210 determines in S103 that the same certificate exists in certificate store 1114 and proceeds with the driver installation process (S106). In this case, since the same certificate already exists, the security warning screen 1500 from OS 1110 is not displayed and the driver can be installed.

[0063] Additionally, by installing driver set B1320 (S106), the drivers from the previous version of driver set A1220 already installed on OS1110 will be updated to the drivers from driver set B1320 through OS1110's processing.

[0064] In this embodiment, we have described an example in which the process in Figure 7 is executed while the installer 1210 is displaying the installation screen (Figure 5). However, even if the installer 1210 installs the driver (in the background) without displaying the installation screen, the installation process in Figure 7 may also be performed.

[0065] The processing of installer 1210 in this embodiment has been described above. With installer 1210 operating as in this embodiment, the security warning screen 1500 from OS 1110 will no longer be displayed even when a new version of the driver is updated and installed. Therefore, users will no longer hesitate, and user convenience can be improved.

[0066] [Example 2] Example 1 described an example in which the driver installer 1210 determines whether to update the driver and whether the certificate is installed in the certificate store 1114 based on information from the OS 1110. Example 2 describes an example in which the driver installer 1210 determines whether to update the driver and whether the certificate exists in the certificate store 1114 based on information it manages independently. The process equivalent to Example 1 will be omitted from the explanation, and only the differences will be described.

[0067] Figure 8 shows the flow in which the installer 1210 in Example 2 installs the driver on the OS 1110, and here again, we will focus on explaining the features of the invention. All the processes described here are executed by the CPU 1041 after the installer 1210, which is stored in the storage unit 1030 of the computer 1000, is loaded into memory 1042. The processes in Figure 8 are performed while the installer 1210 is displaying screen 5 (1450), similar to Example 1.

[0068] First, we will explain the process flow when running installer 1210 of installation set A1200 and installing the previous version of the driver on OS1110 for the first time. The user starts installer 1210 and proceeds with the operation shown on the installation screen in Figure 5. Installer 1210 displays screen 5 (1450) and retrieves information about the installed driver from its own area (S200).

[0069] Specifically, installer 1210 uses the OS API to retrieve the data value of the registry name DriverVersion, which is stored in association with a proprietary OS registry key, as shown in Figure 9(a).

[0070] Next, installer 1210 determines whether the base driver is already installed based on the driver information obtained in S200 (data value of registry name DriverVersion) (S201). In this case, when installer 1210 of installation set A1200 was executed, no older driver of the same type was installed on OS1110, so there is no uniquely saved registry information as shown in Figure 9(a). Therefore, S201 determines it to be No. Installer 1210 then calls the driver installation API for OS1110.

[0071] OS1110 determines that certificate A1242, which corresponds to digital signature A1241 contained in catalog file A1240, does not exist in OS1110's certificate store 1114, and displays a security warning screen 1500 (S107). In this embodiment, it is assumed that on the displayed security warning screen 1500, the user checks the box to always trust drivers with certificates from the same issuer and then presses the "Install" button. When the "Install" button is pressed, OS1110 installs driver file A1250 from installation set A1200 (S106).

[0072] As a result of the user operation described above, OS1110 installs certificate A1242 into certificate store 1114, and certificate A1242 is installed in the certificate store 1114 of OS1110.

[0073] Next, installer 1210 determines whether the driver installation was successful (S204). Specifically, if no error value is returned by the OS1110 driver installation API called by installer 1210 in S106, it is determined that the installation was successful. Alternatively, it may obtain a list of drivers installed on OS1110 using the OS1110 API and make a determination. If it is determined in S204 that no drivers are installed, the process is terminated.

[0074] In this embodiment, it is assumed that the driver has been successfully installed and that S204 is judged as Yes. When S204 is judged as Yes, the installer 1210 saves the information of the installed driver to a proprietary area (S205).

[0075] Specifically, installer 1210 uses the OS API to create the OS registry key (HKEY_LOCAL_MACHINE\SOFTWARE\Canon\PrinterDriver\PrinterA) shown in Figure 9(a). Then, it uses the OS API to save the data value "1.0", which is the version number of driver set A1220, as the registry name "DriverVersion".

[0076] Here, when installer 1210 creates a registry key, it obtains the name of the driver to be installed (PrinterA) from the setup information file A1230 and assigns it as the name of the registry key. By defining the driver name as the registry key name in this way, it can be identified as information for the same type of driver.

[0077] Next, installer 1210 retrieves digital signature A1241 from catalog file A1240 in driver set A1220 (S206). Then installer 1210 identifies certificate A1242 from the retrieved digital signature A1241 and checks if certificate A1242 is in the certificate store 1114 of OS 1110 (S207).

[0078] Specifically, installer 1210 obtains the serial number of certificate A1342 included in digital signature A1241 and checks if a certificate with the same serial number exists in certificate store 1114. Note that while the method described here uses the serial number to determine if identical certificates exist in certificate store 1114, it is also acceptable to determine identity using the checksum (thumbprint) value or other values.

[0079] In S107, if the user unchecks the checkbox on security warning screen 1500 displayed by OS1110 and then clicks the "Install" button, the same certificate does not exist in certificate store 1114. Therefore, S207 determines "No" and terminates the process.

[0080] In this example, the user checked the checkbox on the displayed security warning screen 1500 and pressed the "Install" button, thereby installing the driver for installation set A1200. Therefore, the same certificate exists in certificate store 1114, and S207 determines it to be Yes.

[0081] If S207 determines that Yes, installer 1210 saves a message in its own area indicating that the driver certificate has been installed (S208), and then terminates the process. Specifically, as shown in Figure 9(a), installer 1210 uses the OS API to save a registry entry named "CertInstalled" with the data value "TRUE" to the OS registry key (\HKEY_LOCAL_MACHINE (omitted)\PrinterA).

[0082] Next, we will explain the process flow for installing the upgraded driver on OS1110 by running installer 1210 of installation set B1300. The user starts installer 1210 and proceeds with the operation shown on the installation screen in Figure 5.

[0083] Installer 1210 displays screen 5 (1450) while obtaining information about the installed drivers from its own area (S200). Specifically, Installer 1210 uses the OS API to obtain the data value of the registry name DriverVersion, which is stored in a proprietary OS registry key, as shown in Figure 9.

[0084] Next, installer 1210 determines whether the base driver is already installed based on the driver information obtained in S200 (data value of registry name DriverVersion) (S201). In this embodiment, when installer 1210 of installation set B1300 is executed, it is assumed that a previous version of the same type of driver is installed on OS1110. Therefore, the uniquely saved OS registry information shown in Figure 9(a) exists.

[0085] The registry value obtained by S200 (data value of registry name DriverVersion) is "1.0", which is an older version than the version "2.0" of the driver set B1320 to be installed. Therefore, it is determined that an older driver (base driver) is already installed, and S201 determines it as Yes.

[0086] If S201 determines "Yes," installer 1210 retrieves the base driver certificate installation information from its own area (S202). Specifically, it retrieves the data value of the registry name "CertInstalled" stored in the OS registry key (HKEY_LOCAL_MACHINE\(omitted)\PrinterA) shown in Figure 9(a) using the OS API.

[0087] Next, installer 1210 determines whether the base driver certificate is installed based on the value obtained in S202 (S203). Specifically, if the registry value obtained in S202 (the data value of the registry name "CertInstalled") is "TRUE", it is determined that the base driver certificate is installed. In this example, as shown in Figure 9(a), it is "TRUE", so it is determined that it is installed, and S203 determines Yes.

[0088] If S203 determines "Yes," the installer 1210 then obtains a certificate from the signature of the driver set to be installed (S104) and installs the obtained certificate into the certificate store (S105). However, this process is the same as in Example 1, so the details are omitted. Next, the installer 1210 calls the OS1110's API for driver installation and executes the installation process (S106), but the same certificate already exists. Therefore, the OS1110's security warning screen 1500 is not displayed and the driver can be installed.

[0089] The subsequent actions are the same as when running installation set A1200, but in S205, the information of the installed driver (data value of registry name DriverVersion) is updated to the value "2.0" as shown in Figure 9(b).

[0090] Incidentally, if the registry value (the data value of the registry name "CertInstalled") cannot be obtained in S202, S203 will determine that the base driver certificate is not installed and will return a "No" result. Therefore, processes S104 and S105 will be skipped, and the installation process for the certificate attached to the driver set signature will not be performed.

[0091] In this embodiment, we have shown an example where the installer 1210 uses the OS registry as information it manages independently. However, it may also manage and handle this information in a different format, such as by saving it in a proprietary file.

[0092] The processing of the installer 1210 in this embodiment has been described above. As in this embodiment, by having the installer 1210 manage the driver installation status and certificate installation status as proprietary information, the security warning screen 1500 from the OS 1110 will no longer be displayed. Therefore, the user will not hesitate, and user convenience can be improved.

[0093] Furthermore, while this embodiment describes an example of installing a new driver for the same printer after the initial driver installation, when installing a driver for a different printer, the registry key corresponding to that printer does not exist. Therefore, the installer does not install the certificate. Thus, this embodiment makes it possible to narrow the decision to only the driver compatible with the same printer.

[0094] [Example 3] Examples 1 and 2 described cases where there is only one driver set in the driver installation set. Example 3 describes a case where there are multiple driver sets in the driver installation set. The process equivalent to Example 1 will be omitted from the explanation, and only the differences will be explained.

[0095] Figure 10 shows the file structure of the initial driver installation set C1600 (Figure 10(a)) and the upgraded driver installation set D1700 (Figure 10(b)) in Example 3.

[0096] The configuration is the same as in Example 1, in that there is only one installer 1610 in installation set C1600. However, this installation set C1600 contains two driver sets (1620, 1660). For example, in the case of a multifunction printer, this refers to the printer driver and the scanner driver. In the case of a multifunction printer, even for a single device, multiple drivers are provided in this way, and it is possible to install multiple drivers using a single installer 1610.

[0097] The internal configurations of driver set C-a1620 and driver set D-a1660 are equivalent to those of Example 1.

[0098] Driver set C-a1620 includes setup information file C-a(INF)1630, catalog file C-a(CAT)1640, and driver file C-a(CAB)1650. Catalog file C-a(CAT)1640 contains the digital signature C-a1641 for driver file C-a1650. The certificate for digital signature C-a1641 is certificate C-a1642, which expires on June 30, 2026.

[0099] Driver set D-a1660 contains setup information file D-a(INF)1670, catalog file D-a(CAT)1680, and driver file D-a(CAB)1690. Catalog file D-a(CAT)1680 contains the digital signature D-a1681 of driver file D-a1690. The certificate for digital signature D-a1681 is certificate D-a1682, which expires on December 31, 2026. Here, certificate C-a1642 and certificate D-a1682 are different certificates.

[0100] Installation set D1700 is an installation set that includes drivers that are upgraded versions of the drivers included in installation set C1600. Installation set D1700 includes driver set C-b1720, which is an upgraded version of driver set C-1620, and driver set D-b1760, which is an upgraded version of driver set D-a1660.

[0101] Driver set C-b1720 includes setup information file C-b(INF)1730, catalog file C-b(CAT)1740, and driver file C-b(CAB)1750. Catalog file C-b(CAT)1740 contains the digital signature C-b1741 of driver file C-b1750. The certificate for digital signature C-b1741 is accompanied by certificate C-b1742, which expires on June 30, 2027.

[0102] Driver set D-b1760 includes setup information file D-b(INF)1770, catalog file D-b(CAT)1780, and driver file D-b(CAB)1790. Catalog file D-b(CAT)1780 contains the digital signature D-b1781 of driver file D-b1790. The certificate for digital signature D-b1781 is accompanied by certificate D-b1782, which expires on December 31, 2027.

[0103] Here, certificates C-b1742 and D-b1782 are different certificates, and are also different from certificates C-a1642 and D-a1682 of the previous version of the driver.

[0104] First, we will explain the process flow when running installer 1610 of installation set C1600 and installing the previous version of the driver on OS1110 for the first time. The user starts installer 1610 and proceeds with the operation shown on the installation screen in Figure 5.

[0105] Installer 1610 displays screen 5 (1450) and performs the processes shown in Figure 7 or Figure 8 for each driver set (1620, 1660). Specifically, the installation process for driver set C-a1620 is performed first using the process flow shown in Figure 7 or Figure 8. Subsequently, the installation process for driver set D-a1660 is performed using the same process flow (Figure 7 or Figure 8) as the installation process for driver set C-a1620.

[0106] Here, since each driver set (1620, 1660) is treated as a different driver, the driver for driver set D-a1660, which is executed later, is also judged to be in a state where the base driver is not installed in S101 in Figure 7 or S201 in Figure 8. Therefore, while the installation process for driver set D-a1660 (S106) is being executed, OS1110 finds that certificate D-a1682 does not exist in OS1110's certificate store 1114. Consequently, security warning screen 1800 in Figure 11 is displayed.

[0107] In this embodiment, it is assumed that the user performed the installation with the "Always trust" checkbox checked on the security warning screen 1800. Subsequently, in the process shown in Figure 8, driver set C-a1620 and driver set D-a1660 are treated as separate drivers. Therefore, the information for driver set C-a1620 becomes the data shown in Figure 9(a), and the information for driver set D-a1660 becomes the data shown in Figure 12(a).

[0108] Next, we will explain the process flow for installing the next version of the driver on OS1110, starting from a state where the previous version of the driver mentioned above has been installed, by running installer 1610 of installation set D1700. The user starts installer 1610 and proceeds with the operation shown on the installation screen in Figure 5.

[0109] Installer 1610 displays screen 5 (1450) and performs the processes shown in Figure 7 or Figure 8 for each driver set (1720, 1760). Specifically, the installation process for driver set C-b1720 is performed according to the process flow in Figure 7 or Figure 8. Subsequently, the installation process for driver set D-b1760 is performed using the same process flow (Figure 7 or Figure 8) as the installation process for driver set C-b1720.

[0110] Here, the drivers for driver set C-b1720 and the drivers for driver set D-b1660, which will be executed later, are determined to have base drivers installed in S101 in Figure 7 and S201 in Figure 7 or Figure 8. Therefore, in S105 in Figure 7 or Figure 8, installer 1610 installs certificates C-b1742 and D-b1782 into the certificate store 1114 of OS 1110.

[0111] Therefore, in the subsequent installation process (S106), the drivers can be installed without displaying warning screens 1500 and 1800 when installing driver sets C-b1720 and D-b1760. Subsequently, in the process shown in Figure 8, driver sets C-b1720 and D-b1760 are treated as separate drivers. Consequently, the information for driver set C-b1720 becomes the data shown in Figure 9(b), and the information for driver set D-b1760 becomes the data shown in Figure 12(b).

[0112] The processing of installer 1610 in this embodiment has been described above. Even when multiple driver sets exist in the installation set, as in this embodiment, installer 1610 determines the installation status of each driver and certificate, and installs the certificates as necessary. As a result, security warning screens 1500 and 1800 by OS 1110 will not be displayed, so the user will not hesitate and user convenience can be improved. [Explanation of symbols]

[0113] 1000 computers 1210 Installer 1240 Catalog File 1241 digital signatures 1250 driver files 2000 Printer

Claims

1. A program for installing drivers for controlling peripheral devices into an information processing device, wherein the information processing device... A determination step to determine whether a base driver, which is an older version of the same type as the aforementioned driver, is installed on the information processing device, If the determination step determines that the base driver is installed, the certificate installation step involves installing a certificate corresponding to the digital signature included in the driver set of the base driver into the information processing device. A driver installation process which involves installing the driver files included in the driver set of the aforementioned driver, A program characterized by causing the execution of a specific action.

2. The program according to claim 1, characterized in that it stores the version information of the driver installed in the driver installation step in a proprietary area.

3. The program according to claim 2, characterized in that the determination in the determination step is performed using the version information.

4. The program according to claim 1, characterized in that, in the determination step, when the name of the driver is included in the name of a registry key in the driver store of the information processing device, it is determined that the base driver is installed on the information processing device.

5. The program according to claim 1, characterized in that, in the certificate installation step, if it can be determined from the certificate installation information stored in the driver's proprietary area that the base driver's certificate is installed, the program installs the certificate.

6. The program according to claim 1, characterized in that the program is for installing multiple drivers for controlling each of a plurality of peripheral devices.

7. The program according to claim 1, characterized in that the peripheral device is a printer or a scanner.

8. A control method for installing a driver for controlling peripheral devices into an information processing device, A determination step to determine whether a base driver, which is an older version of the same type as the aforementioned driver, is installed on the information processing device, If the determination step determines that the base driver is installed, the certificate installation step involves installing a certificate corresponding to the digital signature included in the driver set of the base driver into the information processing device. A driver installation process which involves installing the driver files included in the driver set of the aforementioned driver, A control method characterized by having the following features.

9. The control method according to claim 8, characterized in that the version information of the driver installed in the driver installation step is stored in a proprietary area.

10. The control method according to claim 9, characterized in that the determination in the determination step is performed using the version information.

11. The control method according to claim 8, characterized in that, in the determination step, when the name of the driver is included in the name of a registry key in the driver store of the information processing device, it is determined that the base driver is installed on the information processing device.

12. The control method according to claim 8, characterized in that, in the certificate installation step, if it can be determined from the certificate installation information stored in the driver's proprietary area that the base driver's certificate is installed, the certificate is installed.

13. The control method according to claim 8, characterized in that the peripheral device is a printer or a scanner.

14. An information processing device on which drivers for controlling peripheral devices can be installed, A determination means for determining whether a base driver, which is an older version of the same type as the aforementioned driver, is installed on the information processing device, If the determination means determines that the base driver is installed, the certificate installation means installs a certificate corresponding to the digital signature included in the driver set of the base driver into the information processing device. A driver installation means for installing driver files included in the driver set of the aforementioned driver, An information processing device characterized by having the following features.

Citation Information

Patent Citations

  • System, control method therefor, control method for information processing apparatus, and program

    JP2014048956A