IP Library Granted Patent US 10,620,835
Granted Patent B2
US 10,620,835 · App. 15/417,914 · Granted Apr 14, 2020

Attaching a windows file system to a remote non-windows disk stack

Inventors: Gokul Thiruchengode Vajravel (Bangalore, IN); Ramanujam Kaniyar Venkatesh (Bangalore, IN)
Assignee: Wyse Technology L.L.C.
G06F3/0605G06F3/067G06F3/0661
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 10,620,835
App. No.
15/417,914
Granted
Apr 14, 2020
Kind
B2
Abstract

A Windows file system can be attached to a remote non-Windows disk stack thereby allowing a mass storage device to be redirected at the disk level even though a client terminal is running a non-Windows operating system. A client-side proxy can include a disk provider that is configured to obtain disk information from a mass storage device connected to the client terminal and provide it to the server-side agent. A virtual disk enumerator on the server can employ the disk information to emulate a disk stack so that a Windows specific file system can be loaded on the server. Any Windows-specific management commands that target the mass storage device can be handled by the virtual disk enumerator using the disk information, whereas any access commands can be routed to the disk provider which can interface with a non-Windows disk stack on the client terminal for handling.

Claims (43)

1. A method, implemented in a virtual desktop infrastructure environment, for redirecting a mass storage device, which has been connected to a client terminal that has loaded a non-Windows disk stack for purposes of enabling access to the mass storage device, to a server that is executing a Windows operating system, the method comprising:

in conjunction with the client terminal establishing a remote display protocol connection with the server to thereby establish a remote session on the server within the virtual desktop infrastructure environment, receiving, at a virtual disk enumerator that is executing on the server as part of the virtual desktop infrastructure environment, disk information about the mass storage device for which the non-Windows disk stack has been loaded on the client terminal, the non-Windows disk stack not including a Windows-specific disk driver;

employing, by the virtual disk enumerator, the disk information to enumerate the mass storage device on the server to thereby cause a Windows-specific disk driver for the mass storage device to be loaded on the server as part of the virtual desktop infrastructure environment, the loading of the Windows-specific disk driver causing the mass storage device to become accessible within the remote session that the client terminal established on the server as part of the virtual desktop infrastructure environment;

receiving, by the virtual disk enumerator and from the Windows-specific disk driver, Windows-specific commands that originate from the remote session established by the client terminal to which the mass storage device is connected, the Windows-specific commands targeting the mass storage device that is connected to the client terminal, the Windows-specific commands including Windows-specific management commands and Windows-specific access commands;

selectively handling, by the virtual disk enumerator, the Windows-specific commands received from the Windows-specific disk driver, including:

receiving, at the virtual disk enumerator and from the Windows-specific disk driver, a Windows-specific management command targeting the mass storage device;

employing, by the virtual disk enumerator, the disk information to send a response to the Windows-specific management command to the Windows-specific disk driver without sending the Windows-specific management command to the client terminal where the non-Windows disk stack has been loaded as part of the virtual desktop infrastructure environment to enable access to the mass storage device;

receiving, at the virtual disk enumerator and from the Windows-specific disk driver, a Windows-specific access command targeting the mass storage device; and

forwarding the Windows-specific access command to the client terminal to enable a disk provider that executes on the client terminal as part of the virtual desktop infrastructure environment to generate a non-Windows-specific equivalent access command for submission to the non-Windows disk stack.

2. The method of claim 1 , wherein the disk information is received from the disk provider that is executing on the client terminal.

3. The method of claim 1 , wherein the Windows-specific management command is received during a process of creating one or more device objects to represent the mass storage device on the server.

4. The method of claim 1 , wherein the Windows-specific management command is received after a device stack and a file system stack have been created on the server for the mass storage device.

5. The method of claim 1 , wherein the disk information includes one or more of: disk length or size, sector size, tracks per cylinder, sectors per track, bytes per sector, media type, SCSI vendor Id, SCSI product Id, SCSI serial Id, or whether write access is allowed.

6. The method of claim 1 , wherein the Windows-specific management command comprises a command to obtain geometry information.

7. The method of claim 1 , wherein the Windows-specific access command comprises a read command or a write command.

8. The method of claim 7 , wherein forwarding the Windows-specific access command to the client terminal comprises sending one or more of a disk handle, offset, size, or buffer specified in the Windows-specific access command to the disk provider.

9. The method of claim 8 , further comprising:

generating, by the disk provider, the non-Windows-specific equivalent access command.

10. The method of claim 8 , wherein generating the non-Windows-specific equivalent access command comprises converting the offset to a block number.

11. The method of claim 9 , further comprising:

receiving, by the disk provider, a response to the non-Windows-specific equivalent access command; and

generating and sending a Windows-specific equivalent response to the virtual disk enumerator.

12. The method of claim 1 , wherein an operating system of the client terminal is not Windows.

13. One or more computer storage media storing computer executable instructions which when executed implement the following components:

a client-side disk provider of a virtual desktop infrastructure environment that is configured to execute on a client terminal when the client terminal establishes a remote display protocol connection with a server of the virtual desktop infrastructure environment to thereby establish a remote session on the server; and

a server-side virtual disk enumerator that is configured to execute on the server as part of the virtual desktop infrastructure environment;

wherein, when a mass storage device is coupled to the client terminal on which the disk provider is executing while the client terminal has established the remote session on the server and in response to a non-Windows disk stack being loaded on the client terminal for purposes of enabling access to the mass storage device as part of the virtual desktop infrastructure environment, the non-Windows disk stack not including a Windows-specific disk driver, the disk provider is configured to obtain disk information about the mass storage device and send the disk information to the virtual disk enumerator on the server; and

wherein the virtual disk enumerator is configured to use the disk information to enumerate the mass storage device on the server to thereby cause a Windows-specific disk driver for the mass storage device to be loaded on the server as part of the virtual desktop infrastructure environment, the loading of the Windows-specific disk driver causing the mass storage device to become accessible within the remote session that the client terminal established on the server as part of the virtual desktop infrastructure environment;

wherein the virtual disk enumerator is configured to receive, from the Windows-specific disk driver on the server, Windows-specific commands that originate from the remote session established by the client terminal to which the mass storage device is connected, the Windows-specific commands targeting the mass storage device and including Windows-specific management commands and Windows-specific access commands, and, in response to receiving the Windows-specific commands, to selectively handle the Windows-specific commands including employing the disk information to directly handle the Windows-specific management commands that target the mass storage device by using the disk information to provide corresponding responses to the Windows-specific disk driver without sending the Windows-specific management commands to the disk provider and forwarding the Windows-specific access commands that target the mass storage device to the disk provider; and

wherein the disk provider, in response to receiving the Windows-specific access commands, is configured to generate non-Windows-specific equivalent access commands and provide the non-Windows-specific equivalent access commands to the non-Windows disk stack loaded on the client terminal as part of the virtual desktop infrastructure environment.

14. The computer storage media of claim 13 , wherein forwarding the Windows-specific access commands to the disk provider comprises sending one or more of a disk handle, offset, size, or buffer specified in the Windows-specific access commands.

15. The computer storage media of claim 14 , wherein the disk provider is configured to execute on a non-Windows operating system.

16. The computer storage media of claim 14 , wherein the Windows-specific access commands comprise read commands and write commands.

17. One or more computer storage media storing computer executable instructions defining components which when executed implement a virtual desktop infrastructure, the components comprising:

a proxy of the virtual desktop infrastructure that executes on a client terminal that runs a non-Windows operating system, the proxy including a disk provider;

an agent of the virtual desktop infrastructure that executes on a server that runs a Windows operating system, the agent being configured to establish remote display protocol connections with the proxy as part of the virtual desktop infrastructure; and

a virtual disk enumerator of the virtual desktop infrastructure that executes on the server; wherein, when a mass storage device is connected to the client terminal while the proxy has established a remote display protocol connection with the agent to thereby establish a remote session on the server in the virtual desktop infrastructure and a non-Windows disk stack, which does not include a Windows-specific disk driver, is loaded on the client terminal for purposes of enabling access to the mass storage device within the virtual desktop infrastructure, the disk provider obtains disk information about the mass storage device and sends the disk information to the virtual disk enumerator;

wherein the virtual disk enumerator employs the disk information to enumerate the mass storage device on the server to thereby cause a Windows-specific disk driver for the mass storage device to be loaded on the server as part of the virtual desktop infrastructure, the loading of the Windows-specific disk driver causing the mass storage device to become accessible within the remote session that the client terminal established on the server;

wherein the virtual disk enumerator receives, from the Windows-specific disk driver, Windows-specific commands that originate from the remote session established by the client terminal to which the mass storage device is connected, the Windows-specific commands targeting the mass storage device that is connected to the client terminal, the Windows-specific commands including Windows-specific management commands and Windows-specific access commands;

wherein the virtual disk enumerator selectively handles the Windows-specific commands received from the Windows-specific disk driver, the selective handling including directly handling the Windows-specific management commands that target the mass storage device by using the disk information to provide corresponding responses to the Windows-specific disk driver without sending the Windows-specific management commands to the disk provider, and forwarding the Windows-specific access commands that target the mass storage device to the disk provider; and

wherein the disk provider, in response to receiving the Windows-specific access commands, generates non-Windows-specific equivalent access commands and provides the non-Windows-specific equivalent access commands to the non-Windows disk stack loaded on the client terminal as part of the virtual desktop infrastructure.

18. The computer storage media of claim 17 , wherein providing the non-Windows-specific equivalent access commands to the non-Windows disk stack comprises providing the non-Windows-specific equivalent access commands to a block device driver that is included in the non-Windows disk stack.

19. The computer storage media of claim 17 , wherein generating non-Windows-specific equivalent access commands comprises converting an offset included in the Windows-specific access commands to a block number included in the non-Windows-specific equivalent access commands.

Assignments (8)
MERGER Recorded May 9, 2022
From: WYSE TECHNOLOGY L.L.C.
To: DELL MARKETING CORPORATION
Reel/Frame 059912/0109 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (041829/0873) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0724 →
RELEASE OF SECURITY INTEREST AT REEL 041808 FRAME 0516 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0573 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY INTEREST (NOTES) Recorded Feb 28, 2017
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 041829/0873 →
PATENT SECURITY INTEREST (CREDIT) Recorded Feb 24, 2017
From: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 041808/0516 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2017
From: VAJRAVEL, GOKUL THIRUCHENGODE; VENKATESH, RAMANUJAM KANIYAR
To: WYSE TECHNOLOGY L.L.C.
Reel/Frame 041109/0058 →