IP Library Granted Patent US 11,886,760
Granted Patent B2
US 11,886,760 · App. 17/184,603 · Granted Jan 30, 2024

Print driver store for redirection printing in a virtualized computing environment

Inventors: Hui Zhang (Beijing, CN); Weigang Huang (Beijing, CN); Kun Shi (Beijing, CN); Mangui She (Beijing, CN); Hui Yuan (Beijing, CN); Gang Si (Beijing, CN)
Assignee: VMware, Inc.
G06F3/1225G06F3/1203G06F3/123G06F3/1284G06F9/452G06F9/45541G06F9/45545
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,886,760
App. No.
17/184,603
Granted
Jan 30, 2024
Kind
B2
Abstract

A print driver store is usable for redirection printing in a virtualized computing environment that supports virtual desktops. Native print drivers are uploaded to the print driver store from a client side. When an agent attempts to instantiate a virtual printer at the agent side that corresponds to a physical printer at the client side, the agent checks to determine if a native print driver for the physical printer is installed at the agent side. If the native print driver is not installed, then the agent obtains the native print driver from the print driver store and installs the native print driver at the agent side. The agent completes the instantiation of the virtual printer at the agent side and associates the native print driver with the virtual printer.

Claims (68)

1. A method to use a print driver store to provide print drivers to a host device that runs a virtual desktop in a virtualized computing environment, the method comprising:

receiving, by the host device from a client device when a virtual desktop infrastructure (VDI) connection for a VDI session is established between the client device and the host device, printer information that identifies a physical printer coupled to the client device, wherein a native print driver for the physical printer is installed at the client device;

determining, by the host device, whether the native print driver for the physical printer is locally installed at the host device;

in response to determining that the native print driver is missing from the host device and in response to unavailability of an installer kit, at the client device for the native print driver, which causes the native print driver to be unable to be installed at the host device by being provided from the client device, searching, by the host device, the print driver store for the native print driver;

in response to locating, by the host device, the native print driver in the print driver store, obtaining, by the host device, the native print driver from the print driver store and installing, at the host device, the native print driver obtained from the print driver store; and

instantiating at the host device, by the host device, a virtual printer corresponding to the physical printer and associating the installed native print driver obtained from the print driver store with the virtual printer.

2. The method of claim 1 , further comprising:

in response to failing to locate the native print driver in the print driver store, associating, by the host device, a universal print driver at the host device with the virtual printer; and

in response to determining that the native print driver is locally installed at the host device, associating, by the host device, the locally installed native print driver with the virtual printer rather than searching for the native print driver in the print driver store.

3. The method of claim 1 , wherein at least one entity, including the client device, uploads native print drivers to the print driver store for storage therein.

4. The method of claim 3 , wherein:

the upload of the native print drivers to the print driver store includes first and second stages,

the first stage includes the at least one entity uploading at least one native print driver to a first repository, and

the second stage includes verification of the at least one native print driver uploaded by the at least one entity, and storage of the at least one native print driver in a second repository, in the print driver store, in response to the at least one native print driver having passed the verification.

5. The method of claim 4 , wherein the first repository is a pre-public repository with limited access privileges, and wherein the second repository is a public repository.

6. The method of claim 1 , wherein the native print driver is persistently stored at the host device after installation, including remaining persistent after the virtual printer is deleted.

7. The method of claim 1 , further comprising:

in response to determining that the native print driver is installed at the client device and is usable at the host device:

receiving, by the host device from the client device, at least one print driver file corresponding to the native print driver installed at the client device;

installing at the host device by using the at least one print driver file, by the host device, the native print driver;

instantiating at the host device, by the host device, the virtual printer corresponding to the physical printer, and associating the native print driver installed using the at least one print driver file received from the client device with the virtual printer; and

using, by the host device, the native print driver installed using the at least one print driver file received from the client device to generate print data from a print job issued from the virtual desktop so as to enable the print data to be directly passed to the physical printer coupled to the client device for printing.

8. A non-transitory computer-readable medium having instructions stored thereon, which in response to execution by one or more processors, cause the one or more processors to perform a method to use a print driver store to provide print drivers to a host device that runs a virtual desktop in a virtualized computing environment, wherein the method comprises:

receiving, by the host device from a client device, printer information that identifies a physical printer coupled to the client device;

determining, by the host device, whether a native print driver for the physical printer is locally installed at the host device;

in response to determining that the native print driver is missing from the host device:

searching, by the host device, the print driver store for the native print driver;

in response to locating, by the host device, the native print driver in the print driver store, obtaining, by the host device, the native print driver from the print driver store and installing, at the host device, the native print driver obtained from the print driver store; and

instantiating at the host device, by the host device, a virtual printer corresponding to the physical printer and associating the installed native print driver obtained from the print driver store with the virtual printer; and

in response to determining that the native print driver is installed at the client device and is usable at the host device:

receiving, by the host device from the client device, at least one print driver file corresponding to the native print driver installed at the client device;

installing at the host device by using the at least one print driver file, by the host device, the native print driver; and

instantiating at the host device, by the host device, the virtual printer corresponding to the physical printer, and associating the native print driver installed using the at least one print driver file received from the client device with the virtual printer.

9. The non-transitory computer-readable medium of claim 8 , wherein the method further comprises:

in response to failing to locate the native print driver in the print driver store, associating, by the host device, a universal print driver at the host device with the virtual printer.

10. The non-transitory computer-readable medium of claim 8 , wherein at least one entity, including the client device, uploads native print drivers to the print driver store for storage therein.

11. The non-transitory computer-readable medium of claim 10 , wherein:

the upload of the native print drivers to the print driver store includes first and second stages,

the first stage includes the at least one entity uploading at least one native print driver to a first repository, and

the second stage includes verification of the at least one native print driver uploaded by the at least one entity, and storage of the at least one native print driver in a second repository, in the print driver store, in response to the at least one native print driver having passed the verification.

12. The non-transitory computer-readable medium of claim 11 , wherein the first repository is a pre-public repository with limited access privileges, and wherein the second repository is a public repository.

13. The non-transitory computer-readable medium of claim 8 , wherein at least one of the native print driver obtained from the print driver store or the native print driver installed using the at least one print driver file received from the client device is persistently stored at the host device after installation, including remaining persistent after the virtual printer is deleted.

14. The non-transitory computer-readable medium of claim 8 , wherein the method further comprises:

using, by the host device, the native print driver installed using the at least one print driver file received from the client device to generate print data from a print job issued from the virtual desktop so as to enable the print data to be directly passed to the physical printer coupled to the client device for printing.

15. A host device in a virtualized computing environment, the host device comprising:

one or more processors; and

a non-transitory computer-readable medium having instructions stored thereon, which in response to execution by the one or more processors, cause the one or more processors to perform operations to use a print driver store to provide print drivers to the host device which runs a virtual desktop in the virtualized computing environment, wherein the operations comprise:

receive, by the host device from a client device at a client side when a virtual desktop infrastructure (VDI) connection for a VDI session is established between the client device and the host device, printer information that identifies a physical printer coupled to the client device, wherein a native print driver for the physical printer is installed at the client device;

determine, by the host device, whether the native print driver for the physical printer is locally installed at the host device;

in response to determination that the native print driver is missing from the host device and in response to unavailability of an installer kit, at the client device for the native print driver, which causes the native print driver to be unable to be installed at the host device by being provided from the client device, search, by the host device, the print driver store for the native print driver;

in response to locating, by the host device, the native print driver in the print driver store, obtain, by the host device, the native print driver from the print driver store and install, at the host device, the native print driver obtained from the print driver store; and

instantiate at the host device, by the host device, a virtual printer corresponding to the physical printer and associate the installed native print driver obtained from the print driver store with the virtual printer.

16. The host device of claim 15 , wherein the operations further comprise:

in response to a failure to locate the native print driver in the print driver store, associate, by the host device, a universal print driver at the host device with the virtual printer; and

in response to determination that the native print driver is locally installed at the host device, associate, by the host device, the locally installed native print driver with the virtual printer rather than search for the native print driver in the print driver store.

17. The host device of claim 15 , wherein at least one entity, including the client device, uploads native print drivers to the print driver store for storage therein.

18. The host device of claim 17 , wherein:

the upload of the native print drivers to the print driver store includes first and second stages,

the first stage includes the at least one entity uploading at least one native print driver to a first repository, and

the second stage includes verification of the at least one native print driver uploaded by the at least one entity, and storage of the at least one native print driver in a second repository, in the print driver store, in response to the at least one native print driver having passed the verification.

19. The host device of claim 18 , wherein the first repository is a pre-public repository with limited access privileges, and wherein the second repository is a public repository.

20. The host device of claim 15 , wherein the native print driver is persistently stored at the host device after installation, including remaining persistent after the virtual printer is deleted.

21. The host device of claim 15 , wherein the operations further comprise:

in response to determination that the native print driver is installed at the client device and is usable at the host device:

receive, by the host device from the client device, at least one print driver file corresponding to the native print driver installed at the client device;

install at the host device by using the at least one print driver file, by the host device, the native print driver;

instantiate at the host device, by the host device, the virtual printer corresponding to the physical printer, and associate the native print driver installed using the at least one print driver file received from the client device with the virtual printer; and

use, by the host device, the native print driver installed using the at least one print driver file received from the client device to generate print data from a print job issued from the virtual desktop so as to enable the print data to be directly passed to the physical printer coupled to the client device for printing.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0242 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2021
From: ZHANG, HUI; HUANG, WEIGANG; SHI, KUN; SHE, MANGUI; YUAN, HUI; SI, GANG
To: VMWARE, INC.
Reel/Frame 055398/0644 →
Priority Claims (1)
WO PCT/CN2021/070788 · Jan 8, 2021 · international
Continuity (1)
Related Publication 20220222019A1 · Jul 14, 2022