IP Library › Granted Patent US 11,683,363
Granted Patent B1
US 11,683,363 · App. 17/227,727 · Granted Jun 20, 2023

Re-directed folder access on remote volumes and drives

Inventor: Alexander Khalyapin (Tallinn, EE)
Assignee: Parallels International GmbH
H04L67/06G06F9/4411H04L67/01H04L67/1097H04L67/561H04L67/568
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,683,363
App. No.
17/227,727
Granted
Jun 20, 2023
Kind
B1
Abstract

When a user exploits virtualization software and navigates through or to a redirected client drive in a remote session then the file management application may refresh the directory/folder content very slowly, spending significantly more time than expected according to the amount of data, network speed and latency. Whilst this refreshing is being performed no actions with the file management application can be performed by the user. Accordingly to address this a system or method are provided that cache metainformation for files, folders, and subfolders, e.g. upon a network resource, in a driver which responds to a query directory and other related requests by filling a provided buffer with the cached data. Further, this driver may filter out some particular files from the results if a filtering option is selected to further reduce latency.

Claims (65)

1. A method comprising:

providing a client side helper application (client helper) in execution upon an electronic device associated with a user;

providing a server side driver application (driver) in execution upon a server in communication with the electronic device via a network;

providing a user mode proxy application (user mode proxy) in execution upon the server; and

establishing a buffer storing metadata relating to a redirected drive folder path (path) relating to a folder accessible to an application in execution upon the electronic device; wherein

the application in execution accesses the metadata stored within the buffer thereby reducing a latency of accessing data relating to the contents of the folder path; and

the client helper, driver, and user mode proxy execute a process comprising:

opening from the electronic device a file manager application (file browser) upon the remote server;

establishing an identity of the path;

sending an input/output request protocol query (IRP) to a stack of the driver to get a list of folder items within the folder associated with the path;

establishing with the file browser a buffer to receive the list of folder items associated with the IRP;

intercepting the driver the IRP and holding it until a first portion of data is ready to reply with;

sending a request with the driver via the user mode proxy with the identity of the path requested to the client helper over the network;

receiving, with the client helper, the request and beginning to read metadata of the folder;

reading, with the client helper, folder items metadata calls and gets the first portion of items in the buffer;

sending, with the client helper, a reply over the network to the server incorporating the content of the buffer;

receiving the reply, with the user mode proxy, and passing it to the driver;

saving, with the driver, the folder items metadata in a cache; and

filling, with the driver, the buffer provided by the IRP with folder items metadata from the cache.

2. The method according to claim 1 , wherein

opening from the electronic device a file manager employs file manager application programming interface within a remote desktop session; and

the user can control the file manager locally upon the device.

3. The method according to claim 1 , wherein receiving, with the client helper, the request leading to beginning to read metadata of the path further comprises monitoring for changes in the folder.

4. The method according to claim 1 , further comprising

determining whether a retrieved set of folder items metadata associated with a folder defined by the path stored within a buffer is complete or not;

upon determining the retrieved set of folder items metadata is not complete executing with the driver and client helper a process comprising the steps of:

iteratively sending, with the driver, requests to the client helper for another portion of the set of folder items metadata until a final portion of the set of folder items metadata has been received;

receiving, with the client helper, the sequential requests from the driver for the same folder defined by the path wherein the client helper make calls for the next portions of the set of folder items metadata and replies to the driver with the next portions of the of the set of folder items metadata; wherein

the file browser receives a first portion of the set of folder items metadata, renders them upon a display associated with the device and issues requests displays them to user and requests the other portions of the set of folder items metadata.

5. The method according to claim 1 , further comprising monitoring for changes in the folder; wherein the monitoring is performed by a process comprising the steps of:

employing an application programming interface (API) to subscribe to notifications relating to a folder associated with the monitored path, where the notifications relate to changes in the folder;

upon receiving a notification relating to the folder retrieving, with the API, information describing changes within the folder;

establishing in dependence upon the retrieved information a folder change description;

sending, with the client helper, the folder change description to the driver over the network;

receiving, with the driver, the folder change descriptions; and

modifying, with the driver, the folder items metadata in cache according to the received folder change descriptions.

6. The method according to claim 1 , further comprising monitoring for changes in the folder; wherein the monitoring is performed by a process comprising the steps of:

monitoring a plurality of read calls where each read call of the plurality of read calls retrieves information describing changes within the folder associated with the path;

establishing the retrieved information for each read call of the plurality of read calls as a folder change description;

sending, with the client helper, the folder change descriptions associated with the plurality of read calls to the driver over the network;

receiving, with the driver, the folder change descriptions; and

modifying, with the driver, the folder items metadata in cache according to the received folder change descriptions.

7. A method comprising:

providing a client side helper application (client helper) in execution upon an electronic device associated with a user;

providing a server side driver application (driver) in execution upon a server in communication with the electronic device via a network;

providing a user mode proxy application (user mode proxy) in execution upon the server; and

establishing a buffer storing metadata relating to a redirected drive folder path (path) relating to a folder accessible to an application in execution upon the electronic device

determining whether a retrieved set of folder items metadata associated with a folder defined by the path stored within a buffer is complete or not;

upon determining the retrieved set of folder items metadata is not complete executing with the driver and client helper a process comprising the steps of:

iteratively sending, with the driver, requests to the client helper for another portion of the set of folder items metadata until a final portion of the set of folder items metadata has been received;

receiving, with the client helper, the sequential requests from the driver for the same folder defined by the path wherein the client helper make calls for the next portions of the set of folder items metadata and replies to the driver with the next portions of the of the set of folder items metadata; wherein

the file browser receives a first portion of the set of folder items metadata, renders them upon a display associated with the device and issues requests displays them to user and requests the other portions of the set of folder items metadata; and

the application in execution accesses the metadata stored within the buffer thereby reducing a latency of accessing data relating to the contents of the folder path.

8. A method comprising:

providing a client side helper application (client helper) in execution upon an electronic device associated with a user;

providing a server side driver application (driver) in execution upon a server in communication with the electronic device via a network;

providing a user mode proxy application (user mode proxy) in execution upon the server; and

establishing a buffer storing metadata relating to a redirected drive folder path (path) relating to a folder accessible to an application in execution upon the electronic device; and

monitoring for changes in the folder; wherein the monitoring is performed by a process comprising the steps of:

monitoring a plurality of read calls where each read call of the plurality of read calls retrieves information describing changes within the folder associated with the path;

establishing the retrieved information for each read call of the plurality of read calls as a folder change description;

sending, with the client helper, the folder change descriptions associated with the plurality of read calls to the driver over the network;

receiving, with the driver, the folder change descriptions; and

modifying, with the driver, the folder items metadata in cache according to the received folder change descriptions; wherein

the application in execution accesses the metadata stored within the buffer thereby reducing a latency of accessing data relating to the contents of the folder path.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2021
From: KHALYAPIN, ALEXANDER
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 055891/0193 →