IP Library Granted Patent US 11,595,482
Granted Patent B2
US 11,595,482 · App. 17/492,297 · Granted Feb 28, 2023

Image acquisition device virtualization for remote computing

Inventors: Erica Tomes (Pompano Beach, FL); Jayadev Marulappa Niranjanmurthy (Parkland, FL); Georgy Momchilov (Parkland, FL)
Assignee: Citrix Systems, Inc.
H04L67/133G06F9/452G06F9/547G06T1/0007G06T1/60H04L67/02
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,595,482
App. No.
17/492,297
Granted
Feb 28, 2023
Kind
B2
Abstract

Methods and systems for image acquisition device virtualization are described herein. A user of a client computing device may access a remote operating system running on a host computing device via a client application running on a local operating system of the client computing device. An image acquisition device such as a scanner may be connected to the client computing device and the user may wish to use the image acquisition device to acquire image data (e.g., scan a photograph). In order for an image application (e.g., a photo editor) running on the remote operating system to read in the image data from the image acquisition devices, the remote operating system of the host computing device may intercept a service call from the image application at a service layer and redirect the service call, via a virtual channel, to the local operating system of the client computing device.

Claims (56)

1. A method comprising:

receiving, by a virtual user mode device driver running on a host computing device and from an image application running on the host computing device, a service call;

sending, by the virtual user mode device driver and to a user mode device driver proxy running on a client computing device, the service call;

receiving, by the virtual user mode device driver and in response to the service call, data from the user mode device driver proxy; and

sending, by the virtual user mode device driver and to the image application, the data.

2. The method of claim 1 , wherein the virtual user mode device driver is configured to operate one or more image acquisition devices that are not physically coupled to the host computing device.

3. The method of claim 1 , wherein the receiving the service call comprises receiving, by the virtual user mode device driver, the service call from the image application via a software component interface proxy and further via a native image acquisition service object.

4. The method of claim 1 , wherein the image application comprises at least one of a scanning application or a camera application.

5. The method of claim 1 , wherein the user mode device driver proxy is configured to mimic functionalities of a user mode device driver by replaying signals received from the virtual user mode device driver and controlling one or more image acquisition devices connected to the client computing device.

6. The method of claim 1 , wherein the user mode device driver proxy is configured to communicate with one or more kernel mode drivers to control one or more image acquisition devices connected to the client computing device.

7. The method of claim 1 , wherein the service call comprises a request for at least one of:

enumerating one or more image acquisition devices associated with the client computing device,

reading or writing a device property associated with the one or more image acquisition devices,

acquiring image data via the one or more image acquisition devices, or

transferring the image data.

8. The method of claim 7 , wherein the one or more image acquisition devices comprise at least one of a scanner, a camera, a fax machine, an imaging device, a memory card reader, image storage, a photo library, or a storage medium.

9. The method of claim 1 , further comprising establishing, over a network, a virtual channel between the virtual user mode device driver and the user mode device driver proxy,

wherein the sending the service call comprises sending the service call via the virtual channel.

10. The method of claim 9 , wherein the virtual channel comprises a Windows Image Acquisition (WIA) virtual channel.

11. An apparatus comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the apparatus to:

receive, by a virtual user mode device driver running on the apparatus and from an image application running on the apparatus, a service call;

send by the virtual user mode device driver and to a user mode device driver proxy running on a client computing device, the service call;

receive, by the virtual user mode device driver and in response to the service call, data from the user mode device driver proxy; and

send, by the virtual user mode device driver and to the image application, the data.

12. The apparatus of claim 11 , wherein the virtual user mode device driver is configured to operate one or more image acquisition devices that are not physically coupled to the apparatus.

13. The apparatus of claim 11 , wherein the image application comprises at least one of a scanning application or a camera application.

14. The apparatus of claim 11 , wherein the service call comprises a request for at least one of:

enumerating one or more image acquisition devices associated with the client computing device,

reading or writing a device property associated with the one or more image acquisition devices,

acquiring image data via the one or more image acquisition devices, or

transferring the image data.

15. The apparatus of claim 11 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to establish, over a network, a virtual channel between the virtual user mode device driver and the user mode device driver proxy, and

wherein the instructions, when executed by the one or more processors, cause the apparatus to send the service call via the virtual channel.

16. A system comprising:

a client computing device comprising:

a user mode device driver proxy;

one or more kernel mode drivers; and

one or more image acquisition devices; and

a host computing device comprising a virtual user mode device driver, wherein the host computing device is configured to:

receive, via the virtual user mode device driver and from an image application running on the host computing device, a service call;

send, via the virtual user mode device driver and to the user mode device driver proxy, the service call;

receive, via the virtual user mode device driver and in response to the service call, data from the user mode device driver proxy; and

send, via the virtual user mode device driver and to the image application, the data,

wherein the client computing device is configured to:

send, via the user mode device driver proxy and the one or more kernel mode drivers, the service call received from the virtual user mode device driver to the one or more image acquisition devices; and

receive, by the user mode device driver proxy, from the one or more image acquisition devices, and via the one or more kernel mode drivers, the data.

17. The system of claim 16 , wherein the host computing device further comprises a software component interface proxy and a native image acquisition service object, and wherein the host computing device is configured to receive the service call further via the software component interface proxy and the native image acquisition service object.

18. The system of claim 16 , wherein the image application comprises at least one of a scanning application or a camera application.

19. The system of claim 16 , wherein the client computing device is further configured to, based on receiving the service call via the user mode device driver proxy, perform at least one of:

enumerating the one or more image acquisition devices,

reading or writing a device property associated with the one or more image acquisition devices,

acquiring image data via the one or more image acquisition devices, or

transferring the image data.

20. The system of claim 16 , wherein the one or more image acquisition devices comprise at least one of a scanner, a camera, a fax machine, an imaging device, a memory card reader, image storage, a photo library, or a storage medium.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2022
From: TOMES, ERICA; MARULAPPA NIRANJANMURTHY, JAYADEV; MOMCHILOV, GEORGY
To: CITRIX SYSTEMS, INC.
Reel/Frame 061934/0677 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
Continuity (2)
Continuation 16862078 · Apr 29, 2020
Related Publication 20220021752A1 · Jan 20, 2022