Hypervisor printer emulation for virtual machines
First Claim
1. A method comprising:
- receiving, by a processing device executing a hypervisor, a plurality of parameters associated with an emulated printer at a user interface associated with the hypervisor,wherein the plurality of parameters comprise a printer type of a plurality of printer types, a printer implement type of a plurality of printer implement types, a print mechanism of a plurality of print mechanisms and an output type of a plurality of output types,wherein the plurality of printer types comprise a manufacturer specific printer model and a generic printer model,wherein the plurality of printer implement types comprise character printing, bitmap printing, vector printing and Printer Command Language (PCL) printing, andwherein the output type corresponds to a document handling instruction to save a plurality of documents into a single document;
emulating, by the processing device executing the hypervisor, a physical printer to generate an emulated printer in view of the plurality of parameters, wherein the emulated printer is implemented as a component of the hypervisor;
presenting, by the hypervisor via a virtual communication channel, the emulated printer to a printer driver of a guest operating system of a virtual machine, wherein the emulated printer is to translate a plurality of first calls from the virtual machine and at least another virtual machine into a plurality of second calls to the physical printer, wherein the virtual communication channel is provided between the emulated printer of the hypervisor and the printer driver, and wherein presenting the emulated printer allows the guest operating system to issue a print job to the emulated printer via the virtual communication channel as if the physical printer were coupled to the virtual machine when the physical printer is physically unavailable to the processing device;
receiving, by the processing device via the virtual communication channel, the print job from the virtual machine;
creating, by the processing device executing the emulated printer of the hypervisor, a print image of the print job for the emulated printer, wherein the print image to be provided to the emulated printer comprises the plurality of documents saved into the single document; and
transmitting, to a storage device associated with the processing device, the print image, wherein the storage device is inaccessible by the virtual machine.
1 Assignment
0 Petitions
Accused Products
Abstract
A virtual machine manager (VMM) provides an emulated printer to a guest operating system. The virtual machine manager is configured to receive a printer mechanism type, receive an output type, and configure the emulated printer according to the printer type, printer mechanism type, and output type. The VMM, in one embodiment, also provides a virtual communication channel over which a guest operating system may identify and communicate with the emulated printer. The guest operating system installs a printer driver corresponding to the emulated printer, prints an object to the emulated printer via the virtual communication bus, and the VMM creates a print image of the object before communicating the print image with a target destination.
49 Citations
14 Claims
-
1. A method comprising:
-
receiving, by a processing device executing a hypervisor, a plurality of parameters associated with an emulated printer at a user interface associated with the hypervisor, wherein the plurality of parameters comprise a printer type of a plurality of printer types, a printer implement type of a plurality of printer implement types, a print mechanism of a plurality of print mechanisms and an output type of a plurality of output types, wherein the plurality of printer types comprise a manufacturer specific printer model and a generic printer model, wherein the plurality of printer implement types comprise character printing, bitmap printing, vector printing and Printer Command Language (PCL) printing, and wherein the output type corresponds to a document handling instruction to save a plurality of documents into a single document; emulating, by the processing device executing the hypervisor, a physical printer to generate an emulated printer in view of the plurality of parameters, wherein the emulated printer is implemented as a component of the hypervisor; presenting, by the hypervisor via a virtual communication channel, the emulated printer to a printer driver of a guest operating system of a virtual machine, wherein the emulated printer is to translate a plurality of first calls from the virtual machine and at least another virtual machine into a plurality of second calls to the physical printer, wherein the virtual communication channel is provided between the emulated printer of the hypervisor and the printer driver, and wherein presenting the emulated printer allows the guest operating system to issue a print job to the emulated printer via the virtual communication channel as if the physical printer were coupled to the virtual machine when the physical printer is physically unavailable to the processing device; receiving, by the processing device via the virtual communication channel, the print job from the virtual machine; creating, by the processing device executing the emulated printer of the hypervisor, a print image of the print job for the emulated printer, wherein the print image to be provided to the emulated printer comprises the plurality of documents saved into the single document; and transmitting, to a storage device associated with the processing device, the print image, wherein the storage device is inaccessible by the virtual machine. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A non-transitory computer readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:
-
receive, by the processing device executing a hypervisor, a plurality of parameters associated with an emulated printer at a user interface associated with the hypervisor, wherein the plurality of parameters comprise a printer type of a plurality of printer types, a printer implement type of a plurality of printer implement types, a print mechanism of a plurality of print mechanisms and an output type of a plurality of output types, wherein the plurality of printer types comprise a manufacturer specific printer model and a generic printer model, wherein the plurality of printer implement types comprise character printing, bitmap printing, vector printing and Printer Command Language (PCL) printing, and wherein the output type corresponds to a document handling instruction to save a plurality of documents into a single document; emulate, by the hypervisor, a physical printer to generate an emulated printer in view of the plurality of parameters, wherein the emulated printer is implemented as a component of the hypervisor; present, by the hypervisor via a virtual communication channel, the emulated printer to a guest operating system of a virtual machine, wherein the emulated printer is to translate a plurality of first calls from the virtual machine and at least another virtual machine into a plurality of second calls to the physical printer, wherein the virtual communication channel is provided between the emulated printer of the hypervisor and the printer driver, and wherein presenting the emulated printer allows the guest operating system to issue a print job to the emulated printer via the virtual communication channel as if the physical printer were coupled to the virtual machine when the physical printer is physically unavailable to the processing device; receive, by the processing device via the virtual communication channel, the print job from the virtual machine; create, by the processing device executing the emulated printer of the hypervisor, a print image of the print job for the emulated printer, wherein the print image to be provided to the emulated printer comprises the plurality of documents saved into the single document; and transmit, to a storage device associated with the processing device, the print image, wherein the storage device is inaccessible by the virtual machine. - View Dependent Claims (7, 8, 9, 10)
-
-
11. An apparatus comprising:
a memory; and a processing device, operatively coupled to the memory, to; receive, by a hypervisor, a plurality of parameters associated with an emulated printer, wherein the plurality of parameters comprise a printer type of a plurality of printer types, a print mechanism of a plurality of print mechanisms and an output type of a plurality of output types, and wherein the output type corresponds to a document handling instruction to save a plurality of documents into a single document; emulate, by a hypervisor, a physical printer to generate an emulated printer in view of the plurality of parameters, wherein the emulated printer is implemented as a component of the hypervisor; present, by the hypervisor via a virtual communication channel, the emulated printer to a printer driver of a guest operating system of a virtual machine, wherein the emulated printer is to translate a plurality of first calls from the virtual machine and at least another virtual machine into a plurality of second calls to the physical printer, wherein the virtual communication channel is provided between the emulated printer of the hypervisor and the printer driver, and wherein presenting the emulated printer allows the guest operating system to issue a print job to the emulated printer via the virtual communication channel as if the physical printer were coupled to the virtual machine when the physical printer is physically unavailable to the processing device; receive, via the virtual communication channel, the print job from the virtual machine; create, by the emulated printer of the hypervisor, a print image of the print job for the emulated printer, wherein the print image to be provided to the emulated printer comprises the plurality of documents saved into the single document; and transmit, to a storage device associated with the processing device, the print image, wherein the storage device is inaccessible by the virtual machine. - View Dependent Claims (12, 13, 14)
Specification