JP2009508212A - リモートシステムのためのプラグ・アンド・プレイデバイスのリダイレクション - Google Patents

リモートシステムのためのプラグ・アンド・プレイデバイスのリダイレクション Download PDF

Info

Publication number
JP2009508212A
JP2009508212A JP2008530059A JP2008530059A JP2009508212A JP 2009508212 A JP2009508212 A JP 2009508212A JP 2008530059 A JP2008530059 A JP 2008530059A JP 2008530059 A JP2008530059 A JP 2008530059A JP 2009508212 A JP2009508212 A JP 2009508212A
Authority
JP
Japan
Prior art keywords
driver
client computer
server computer
computer
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008530059A
Other languages
English (en)
Other versions
JP5133886B2 (ja
Inventor
チック ジョイ
ヴィ.パトワーダン マカランド
エル.ポーター ネリー
ケー.ストヤノフ ウラジミール
カシェフ ザルドシュト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009508212A publication Critical patent/JP2009508212A/ja
Application granted granted Critical
Publication of JP5133886B2 publication Critical patent/JP5133886B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

リモートアクセスシステムがサーバコンピュータを1つまたは複数のクライアントコンピュータと接続し、デバイスがクライアントコンピュータでローカルに接続される。デバイスは、クライアントコンピュータにより認識され、デバイスドライバが接続され認識された各デバイスに提供される。仮想ドライバが、サーバコンピュータで、そのデバイスに特有の情報から作成され、その結果、仮想ドライバはサーバコンピュータ上のアプリケーションに対して実際のドライバとして働く。仮想ドライバを介するアプリケーションは、命令を認識し、接続されたデバイスにこの命令を与えることができる。

Description

本発明は、リモートシステムのためのプラグ・アンド・プレイデバイスのリダイレクションに関する。
本出願は、2005年9月9日に出願された米国仮出願第60/716,025号に対して合衆国法典第35巻第119条(e)に基づき優先権を主張し、この仮出願の開示は本明細書に組み込まれる。
Microsoft Corporationにより提供されるターミナルサービス(商標)システムなどのリモート・クライアント・アクセスのプラットフォームおよびシステムにより、コンピュータ(ユーザ)が、アプリケーションサーバまたはサーバ群(サーバコンピュータ)によりホストされこのサーバ(群)に常駐するアプリケーションプログラムをリモートでアクセスすることが可能となる。リモート・クライアント・アクセスシステムで、クライアントコンピュータは、典型的にはサーバコンピュータを頼りにして、常駐のアプリケーションプログラムを介してコンピューティング機能を提供する。アプリケーションプログラムの例には、ワード処理、マルチメディア、およびデータ管理のプログラムが含まれる。
サーバコンピュータは、ホストコンピュータまたはターミナルサーバと呼ばれてよい。ある場合には、複数のサーバコンピュータが存在してよい。クライアントコンピュータは、リモートターミナル、リモートクライアント、またはシンクライアントと呼ばれてよい。クライアントコンピュータは、主にユーザインターフェース、すなわちユーザとデバイスの入出力との対話に用いられるが、多くの場合、ローカルデバイスまたはデバイス群がクライアントコンピュータに取り付けられ、サーバコンピュータによりアクセスされる。
クライアントコンピュータ上のソフトウェアは、典型的には汎用であるか、あるいはアプリケーション特有ではなく、概してオペレーティングシステムと、リモート・クライアント・アクセス環境をサポートするためのソフトウェアを含む汎用ソフトウェアとで構成される。サーバコンピュータにおけるソフトウェアは典型的には、マルチメディア、画像化、データベースアクセス、ワード処理および他の種類のアプリケーションなどの特定の機能を提供する特定の目的のためのアプリケーションソフトウェアを含む。クライアントコンピュータとサーバコンピュータの間を通信されるデータは主に、グラフィックデータ、キーストローク、マウスの移動等などのユーザインターフェースに関する命令およびデータを含み、そしてクライアントコンピュータにて設置されるハードウェアデバイスに関する命令およびデータを含む。
サーバコンピュータおよびクライアントコンピュータは典型的には、Microsoft Corporationにより規定されたリモート・デスクトップ・プロトコル(RDP:remote desktop protocol)などの所定の通信プロトコルを用いて情報を互いに通信するかまたは渡す。インターネットプロトコルを介する通信制御プロトコル(TCP/IP)などのより低レベルのネットワークプロトコルも必要とされる。
リモート・クライアント・アクセスシステムの利点は、多くの機能および計算がサーバコンピュータで行われるため、クライアントコンピュータが相対的に低電力であることが可能であるということである。サーバコンピュータは典型的なデスクトップコンピュータより高価であることが多いが、1つのアプリケーションサーバコンピュータは、多くのより廉価なクライアントコンピュータにサービスを行うことが可能である。
いくつかのリモート・クライアント・アクセスシステムにおける他の利点は、データがサーバコンピュータの物理位置に常駐でき、相対的に遅い通信リンクを介してクライアントコンピュータに転送される必要がなく、その位置でアプリケーションプログラムにより動作することができ、ユーザインターフェースのみがクライアントの物理位置で実装される。
クライアントコンピュータは、ユニバーサルシリアルバス(USB)またはファイアワイア(IEEE1394)ポートなどのポートを有し、これらのポートに1つまたは複数のローカルデバイスまたは周辺ハードウェアデバイスが取り付けられる。このようなデバイスは、USBキーボードの場合のようにユーザインターフェースに関係してよい。多くの場合、サーバコンピュータで実行するアプリケーションは、このようなローカルのクライアントデバイスにアクセスし対話する必要がある。ローカルデバイスまたは周辺デバイスの例は、オーディオレコーダ、デジタルカメラ、ドキュメントスキャナ、外部ディスクドライブ、およびメディアリーダ等を含む。このようなデバイスは、デバイスがポートに一旦接続されるとそれらのデバイスは使用可能になるため、プラグ・アンド・プレイデバイスまたはPNPデバイスと呼ばれることがある。
典型的なWindows(登録商標)ベースのデスクトップ環境で、ローカルアプリケーションが、ドライバスタックと呼ばれる一連のドライバを介してローカルデバイスと通信する。デバイスのPNP機能を容易にするために特にドライバスタックを用いる。異なる責任が、組織化および再利用の目的でドライバスタックの要素の間で分配されてよい。例えば、いくつかのドライバは、すべての、または特定の一般的な部類のローカルデバイスに対して汎用であり、多くの異なるデバイスと通信するために使用または再利用できる。他のドライバは、特定のデバイスに特有の機能を実装し、これら特定のデバイスに付随するように特に設計されることが多い。典型的には、このような問題は、ケースバイケースベースで対処される。例えば、ローカルデバイスをサポートするために、対応するソフトウェアドライバが、ローカルマシンまたはクライアントコンピュータにインストールされる。異なった複数のデバイスでは、異なったハードウェアデバイスをサポートするために、異なった正しいソフトウェアドライバを提供することに関する問題が起きる。
ある場合には、ユーザが、特定のデバイスが接続されているものと同じクライアントコンピュータを用いていない可能性があるが、ユーザは、そのデバイスへのアクセスまたは使用を望む。これは、ユーザが別のクライアントコンピュータから「リモートで」仕事をしているときの場合である可能性がある。さらにサーバコンピュータが、2以上のクライアントコンピュータまたはユーザに対してローカルデバイスへのアクセスを行うことが望ましい可能性がある。したがって、リモート・クライアント・アクセスシステムで、特定のリモート・クライアント・コンピュータにおけるデバイスがサーバコンピュータにローカルに接続されているように見え、その結果他のリモート・クライアント・コンピュータがデバイスにアクセスできることが望ましい。
デバイスがクライアントコンピュータにおいてローカルに接続および認識され、ドライバスタックの一部としてのデバイスドライバがクライアントコンピュータでインストールされ、クライアントコンピュータで接続された各デバイスをサポートする。デバイスの接続は、仮想ドライバをサーバコンピュータで作成するための情報と共にサーバコンピュータに通信される。仮想ドライバは、サーバコンピュータに常駐するアプリケーションにより認識される。次にサーバコンピュータからの命令は、仮想ドライバを介してデバイスに渡され、そしてデバイスドライバに戻って通信されてよく、サーバコンピュータよるデバイスの制御を可能とする。
この概略は、詳細な説明で以下にさらに説明される、簡素化した形での概念の一選択を紹介するために行われる。この概略は、特許請求の範囲の主題のキーとなる特徴または本質的な特徴を明確にする意図はなく、特許請求の範囲の主題範囲を決定する助けとして用いられる意図もない。
詳細な説明が添付の図を参照して説明される。図では、参照番号の一番左の数字(群)が、その参照番号が最初に現れる図を示す。異なる図での同一の参照番号の使用は、類似のまたは同一の項目を示す。
図1は、リモート・クライアント・アクセスシステムまたはリモートシステム100を示す。リモートシステム100は、サーバコンピュータ102および1つまたは複数のクライアントコンピュータ104を含む。特に、サーバコンピュータ102は、クライアントコンピュータにローカルに接続されたデバイスを手助けし、またはサポートするために、プラグ・アンド・プレイ(PNP)デバイスまたはPNPリダイレクタ、および仮想デバイスドライバを含む。
この例では、単一のクライアントコンピュータ104が示されているが、他の実装では、複数のクライアントコンピュータが含まれてよい。クライアントコンピュータ104にて接続されたローカルデバイス108のアクセスおよび制御は、サーバコンピュータ102に向けられるかまたはリダイレクトされてよく、その結果、ローカルデバイス108がサーバコンピュータ102により選択的にアクセスおよび制御されることが可能となる。リモートシステム100は、Microsoft Corporationにより提供または規定されるターミナルサービス(商標)システムであってよく、このシステムでは、複数のクライアントコンピュータ(例えば、クライアントコンピュータ104)は、機能を提供するすべてのまたは特定のアプリケーションプログラムをサーバコンピュータ102に頼っている。
ネットワーク110が、サーバコンピュータ102とクライアントコンピュータ104を接続する。ネットワーク110は、いくつかの方法で実装され、有線ベースの技術および無線技術の両方を含むネットワーキングコンテクストをサポートしてよい。本発明の態様は、1つの特定のネットワークアーキテクチャまたはネットワーク技術に限定されない。リモートシステム100は、モデムを介する直接ダイアルアップ、企業LAN(ローカルエリアネットワーク)、WAN(広域ネットワーク)およびインターネットを含む異なるアーキテクチャを表す。ネットワーク110は、サーバコンピュータ102を1つまたは複数のクライアントコンピュータ(例えば、クライアントコンピュータ104)に接続する。さらに、サーバコンピュータ102とクライアントコンピュータ104の間のネットワーク108の接続は、インターネットプロトコルを介する伝送制御プロトコル(TCP/IP)などのトランスポートプロトコルを実装してよい。
サーバコンピュータ102は、Microsoft Corporationにより提供されるWindows(登録商標)Server2003オペレーティングシステムなどのオペレーティングシステムで実装される。サーバコンピュータ102およびクライアントコンピュータ104は、データまたは情報を互いに渡す(すなわち、通信する)ために、Microsoft Corporationにより規定されたリモートデータプロトコル(RDP:remote data protocol)などの通信プロトコルを実装してよい。このような通信プロトコルの使用、および特にRDPの使用は、ターミナルサービス(商標)システムなどのリモート・クライアント・アクセスシステムの関連で実装されてよい。
さらに、サーバコンピュータ102およびクライアントコンピュータ104への通信は、RDPを介して通信される入出力要求パケット(IRP:I/O request packet)、および特に入出力制御(IOCTL:I/O control)コードと呼ばれるIRPの特別なグループを使用してよい。特に、サーバコンピュータ102に常駐するアプリケーションプログラムは、ローカルデバイス108と通信するためにIRPを実装してよい。IRPは、1つまたは複数のローカルデバイス108への要求を含むアプリケーションプログラムから発生する通信データであってよい。ローカルデバイスは、IOCTLコード内の物理デバイスオブジェクト(PDO:physical device object)としてアプリケーションプログラムにより識別されてよく、IOCTLコードでは特定のデバイス108のそれぞれが、特定のPDOにより識別される。以下に説明される実デバイスドライバが、PDOをローカルデバイス108に対して作成してよい。
クライアントコンピュータ104は、汎用PC(パーソナルコンピュータ)、ラップトップPC、タブレットPC等であってよく、Microsoft CorporationのWindows(登録商標)ブランドのオペレーティングシステムなどのオペレーティングシステムを実装してよい。クライアントコンピュータ104は、クライアントコンピュータ104でローカルに格納されていないファイルまたは他の情報(例えば、アプリケーションサーバコンピュータ102に常駐するアプリケーションプログラム)をアクセスするために主にサーバコンピュータ102とインターフェースするスタンドアロンコンピュータである。
クライアントコンピュータ104は、ローカルデバイス108などのPNPデバイスを接続する1つまたは複数のデバイスポートを備えている。デバイスポートは、既存の(すなわち、レガシーな)および将来の規格をサポートするUSB1.0、1.1および2.0、ならびにファイアワイア(IEEE1394)ポートを含む。特にデバイスポートは、クライアントコンピュータ104へのローカルデバイス108の接続を可能にする。ローカルデバイス108は、デジタルカメラ、ビデオカメラ、ハードディスク記憶デバイス、デジタルメディアレコーダ、プリンタ、スキャナ等を含むがこれに限定されない。サーバコンピュータ102は、PNPリダイレクタおよび仮想デバイスドライバ106を含む。特に、さらに以下で詳細に説明されるように、PNPリダイレクタは、1つまたは複数のローカルデバイス108の接続に関して検知するか、またはクライアントコンピュータ104により通知されるように構成されている。仮想デバイスドライバは、サーバコンピュータ102で作成され、クライアントコンピュータ104で検出された実際のデバイスドライバの機能を実行する。
図2は、サーバコンピュータ102およびクライアントコンピュータ104の例示のドライバスタックを示す。これらのドライバスタックは、ローカルデバイス108の命令および制御をサーバコンピュータ102に常駐するアプリケーション202へ向けるために使用できる構成例である。特に、特定のローカルデバイス108に特有であるリモートサービスドライバまたは仮想ドライバ204が、コンピュータ102のドライバスタックの一部として作成されるか、または提供される。
サーバコンピュータ102は、処理装置またはプロセッサ206およびストレージシステムまたはメモリ208を含む。プロセッサ206は、メモリ208およびサーバコンピュータ102のドライバスタックの要素などの、サーバコンピュータ102の要素を制御またはアクセスするように構成されている。この例は、サーバコンピュータ102のドライバスタックの要素から独立したメモリ208を図示しているが、他の実装では、さらに以下に説明されるように、サーバコンピュータ102のドライバスタックの要素がメモリ208内に含まれることが考えられる。
サーバコンピュータ102のドライバスタックは、後続の要素または層を含むと考えてよく、これらの層ではアプリケーション202は、ドライバスタックの最上位レベルの要素または層と見なされる。アプリケーション202は、様々なマルチメディア、画像化、データベースアクセス、ワード処理、および他の種類のアプリケーションを含む。アプリケーション202は、アプリケーションサービス210の一部であるかまたはアプリケーションサービス210に接続されてよい。アプリケーションサービス210は、互換層212を含むか、または互換層212に接続される。互換層212は、Window(登録商標)ポータビリティデバイス(WPD:Window portability device)フォーマットなどのフォーマットを実装する特定のローカルデバイスをサポートするときに実装されてよい。
アプリケーションサービス210または互換層212は、上位レベルのフィルタドライバまたはリダイレクタ214と通信する。リダイレクタ214は、OSの命令をアプリケーションサービス210または互換層212に反映またはリダイレクトする、オペレーティングシステム(OS)ベースの要素、またはカーネルベースの要素(すなわち、ドライバ)であってよい。さらに、この実装では、リダイレクタ214を用いて仮想ドライバ204に通信する。
仮想ドライバ204は、ローカルデバイス108を特にサポートし、クライアントコンピュータ104のドライバスタックと通信するために作成される。仮想ドライバ204は、ホストプロセス216内に含まれてよいが、この例では、仮想ドライバ204は、サーバコンピュータ102のドライバスタックの一部としてホストプロセス216から独立しホストプロセス216と通信する。ホストプロセス216は、PNPリダイレクタ218と通信する。
PNPリダイレクタ218は、仮想ドライバ204が最初に作成されたときに、特にクライアントコンピュータ104からの通信を行う。特にPNPリダイレクタ218は、クライアントコンピュータ104に接続され、クライアントコンピュータ104からリダイレクトされるべきデバイス(すなわち、ローカルデバイス108)を列挙または識別する。PNPリダイレクタ218は、サーバコンピュータ102とクライアントコンピュータ104の間のIRPベースの通信を行うリダイレクション・ライブラリを含むか、またはリダイレクション・ライブラリにアクセスできる。IRPベースの通信では、仮想チャネルが用いられてよい。PNPリダイレクタ218は、デバイスを表す特定のPDOを作成してよい。特にPDOは、通信がサーバコンピュータ102とクライアントコンピュータ104の間でIRPを渡すことを必要とするとき作成される。デバイスがクライアントコンピュータ104から切り離されるときにはいつでも、PNPリダイレクタはその特定のPDOを破棄してよい。
アプリケーション202とローカルデバイス108の間の通信では、仮想ドライバ204は、リモート・サービス・クライアント・アプリケーション220と直接通信する。リモート・サービス・クライアント・アプリケーション220は、クライアントコンピュータ104などのクライアントコンピュータでのターミナルサービス(商標)により実装されたプロセスなど、リモートプロセスであってよい。リモート・サービス・クライアント・アプリケーション220を主に用いてクライアントコンピュータ104とサーバコンピュータ102の間の通信を行ってよい。
サーバコンピュータ102と同様に、クライアントコンピュータ104は、処理装置またはプロセッサ222およびストレージシステムまたはメモリ224を含む。プロセッサ222は、メモリ224およびクライアントコンピュータ104のドライバスタックの要素などの、クライアントコンピュータ104の要素を制御またはアクセスするように構成されている。この例は、クライアントコンピュータ104のドライバスタックの要素から独立したメモリ224を図示しているが、他の実装では、さらに以下に説明されるように、クライアントコンピュータ104のドライバスタックの要素がメモリ224内に含まれることが考えられる。
リモート・サービス・クライアント・アプリケーション220は、クライアントコンピュータ104のドライバスタックの最上位の要素または層と見なされてよい。ドライバスタック内のリモート・サービス・クライアント・アプリケーション222の下に、ホストプロセス226がある。ホストプロセス226は、ローカルデバイス108を容易にするために、ドライバと通信し、ドライバを作成または提供する、クライアントコンピュータ104内の常駐アプリケーションであってよい。この例では、ローカルデバイス106に特有の実デバイスドライバ228が、ホストプロセス226により作成または提供される。
PNPデバイスをサポートする典型的なドライバスタックでは、ローカルデバイス108は、排他的に実デバイスドライバ228などのデバイスドライバに頼って、ドライバスタックに沿ってデータを通信するかまたは渡している。この実装で、実デバイスドライバ228はまた、ローカルデバイス108に対して通信を行うが、仮想ドライバ204は実デバイスドライバ228として働き、サーバコンピュータ102および特にアプリケーション202がローカルデバイス108を制御またはアクセスできる能力を提供する。
上位レベルのフィルタドライバまたはリダイレクタ230は、クライアントコンピュータ104のドライバスタック内に含まれる。リダイレクタ230は、仮想ドライバ204から(リモートクライアントアプリケーション220を通って)ローカルデバイス108への通信を可能とする。クライアントコンピュータ104のドライバスタックは、バスドライバ234と通信するOSレベルまたはカーネルドライバ232を含む。バスドライバ234は、ホストコントローラドライバ236と通信する。ローカルデバイス108、および他のPNPデバイスは、ホストコントローラ238に接続されるポートを通してクライアントコンピュータ104に接続する。次にホストコントローラ238は、ホストコントローラドライバ236を介しクライアントコンピュータ104のドライバスタックを通って通信する。
ローカルデバイス108などの新しいデバイスが、クライアントコンピュータ104にプラグインまたは接続されるときにはいつも、実デバイスドライバ228などのデバイスドライバがインストールされる。実デバイスドライバ228は、新たに発見されたデバイスまたはローカルデバイス108に束縛される。ドライバスタック内のアプリケーションが、今ではデバイス(すなわち、ローカルデバイス108)をアクセスまたは使用できる。このようなアプリケーションはホストプロセス226を含んでよい。実デバイスドライバ228が作成されると、仮想ドライバ204もまた作成される。仮想ドライバ204の作成により、アプリケーション202がローカルデバイス108を認識できるようになる。
サーバコンピュータ102からクライアントマシン104への、アプリケーション202と実デバイスドライバ202との間の通信は、リダイレクトされ、その結果仮想ドライバ204は、実デバイスドライバ228の代理として働く。一旦仮想ドライバ204とアプリケーション202の間の関係が確立されると、仮想ドライバ204とアプリケーション202との間の通信が実デバイスドライバ228に転送される。実デバイスドライバ228に転送された通信はローカルデバイス108が予想したやり方で働くことを可能とする。つまり、クライアントコンピュータ104のデバイススタックが作成されると、ホストプロセス226への命令または通信など、特定の命令または通信が実デバイスドライバ228を通ることを予想できる。
ローカルデバイス108がサーバコンピュータ102に、特にアプリケーション202にリダイレクトされると、後続のイベントシーケンスが行われてよい。ローカルデバイス108がクライアントコンピュータ104にプラグされ、デバイスドライバ(すなわち、カーネルドライバ232、リダイレクタ230、および実デバイスドライバ228)がロードされ、通知がアプリケーション202に送信される。クライアントコンピュータ104は、ローカルデバイス108を認識し、PNPリダイレクタ218に情報を送信し、その情報を用いて仮想デバイスドライバ204を作成する。仮想ドライバ204は作成され、通信リンクがリモート・サービス・クライアント・アプリケーション220と確立される。アプリケーション202は、新たに発見されたローカルデバイス108および作成されインストールされた実デバイスドライブ228を通知される。次にアプリケーション220は入出力を仮想ドライバ204に送信し、仮想ドライバ204はそれをリモート・サービス・クライアント・アプリケーションに転送し、リモート・サービス・クライアント・アプリケーションはそれを実デバイスドライバ228に転送する。クライアントハードウェア(例えば、デバイス108)がプラグを抜かれるか、またはクライアントコンピュータ104とサーバコンピュータ102との間の接続が切断される場合、仮想ドライバ204は、サーバからアンロードされ、すべての通信が停止する。
図3は、仮想ドライバをサーバコンピュータ上に作成する処理300を示す。処理300は、クライアントコンピュータおよびサーバコンピュータによってプロトコルとして実装されてよい。処理300は論理流れ図のブロックの集合として図示され、これらのブロックは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装可能な一連の操作を表す。ソフトウェアとの関連では、ブロックは、1つまたは複数のプロセッサにより実行されるときに、説明した操作を実行するコンピュータ命令を表す。流れ図として説明されているが、特定のブロックが同時にまたは異なる順序で行われてよいと考えられる。処理300は、例えば、図1のシステム100、および/または図2で説明したコンピュータ102および104により実装されてよいが、処理300は他のアーキテクチャにより実装されてよい。
ブロック302では、新しいハードウェアデバイス302が発見される。このハードウェアデバイスは、クライアントコンピュータ104に接続されるローカルデバイス108などのクライアントコンピュータに接続されるプラグ・アンド・プレイ(PNP)デバイスであってよい。特定のデバイスは、クライアントコンピュータ104に常駐するホストプロセス226などのアプリケーションにより発見または識別可能である。さらに、ローカルデバイス108を発見することはPNP処理の一部であってよい。
ブロック304では、クライアントコンピュータ104は、検出されたデバイスをサポートするために必要なドライバまたはドライバスタックをロードまたはインストールする。インストールは、クライアントコンピュータ104に常駐するホストプロセス226または他のアプリケーションにより実行されてよい。さらに、デバイスがクライアントコンピュータ104に接続されるとき、インストールは典型的なPNPデバイス操作の一部であってよい。ドライバはデバイスドライバ(例えば、実デバイスドライバ228)、上位レベルのフィルタドライバ(例えば、リダイレクタ230)、カーネルドライバ(例えば、カーネルドライバ232)およびバスドライバ(例えば、バスドライバ232)を含んでよい。
ブロック306では、デバイスに関係する情報が識別される。この識別は、サーバコンピュータとクライアントコンピュータとの間の通信を行うアプリケーションにより実行されてよい。リモート・サービス・クライアント・アプリケーション220はこのような通信アプリケーションの例である。通信は、RDPを介して通信される入出力要求パケット(IRP)、および特に入出力制御(IOCTL)コードと呼ばれるIRPの特別なグループなどのパケットを用いてよい。デバイスはまた、IOCTLコード内の物理デバイスオブジェクト(PDO)として識別されてよい。
ブロック308では、デバイス関連の情報は、サーバコンピュータ102に通信される。この情報は、サーバコンピュータ102とクライアントコンピュータ104との間の通信を行うアプリケーション(例えば、リモート・サービス・クライアント・アプリケーション220)により渡されてよい。通信された情報を特に用いて仮想ドライバ(例えば、仮想ドライバ204)をサーバコンピュータ102で作成し、この仮想ドライバは発見されたデバイス(例えば、ローカルデバイス108)に特有である。仮想ドライバは、アプリケーション202などのアプリケーションまたはアプリケーションサービス210などのサービスにより作成されてよい。
図4は、クライアントコンピュータデバイスをサーバコンピュータにリダイレクトする処理400を示す。処理400は、クライアントコンピュータおよびサーバコンピュータによってプロトコルとして実装されてよい。処理400は論理流れ図のブロックの集合として図示され、これらのブロックは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装可能な一連の操作を表す。ソフトウェアとの関連では、ブロックは、1つまたは複数のプロセッサにより実行されるときに、説明した操作を実行するコンピュータ命令を表す。流れ図として説明されているが、特定のブロックが同時にまたは異なる順序で行われてよいと考えられる。処理400は、例えば、図1のシステム100、および/または図2で説明されたコンピュータ102および104により実装されてよいが、処理400は他のアーキテクチャにより実装されてよい。
ブロック402で、仮想ドライバ(例えば、仮想ドライバ204)がサーバコンピュータ104で作成される。仮想ドライバ204は、クライアントコンピュータ(例えば、クライアントコンピュータ104)からサーバコンピュータ102により受信された情報であり、接続されたデバイス(例えば、ローカルデバイス108)を説明する情報に基づき作成される。仮想ドライバ204は、サーバコンピュータでアプリケーション(例えば、アプリケーション202)により認識され、新しいハードウェアまたは新しいデバイスが取り付けられ利用可能になったことをアプリケーションに指示する。
ブロック404で、通信がサーバコンピュータ102とクライアントコンピュータ104の間で確立される。通信は仮想チャネルなどの通信リンクを通してよい。特に、サーバコンピュータ102からクライアントコンピュータ104への通信は、クライアントコンピュータに常駐のアプリケーションを使用してよく、アプリケーションは入出力命令を仮想ドライバと通信する。このようなアプリケーションの例がリモート・サービス・クライアント・アプリケーション220である。
ブロック406で、アプリケーション202およびリモート・サービス・クライアント・アプリケーション220は、新しく作成されたデバイスドライバ(例えば、実デバイスドライバ228および仮想デバイスドライバ204)を認識することにより、接続されたデバイス108が利用可能であることの通知を受ける。
ブロック408で、アプリケーショ202は、仮想デバイスドライバ204を介して入出力命令を通信し、仮想デバイスドライバ204はリモート・サービス・クライアント・アプリケーション220などのアプリケーションに命令を渡す。命令は、ローカルデバイス108がクライアントコンピュータ104のローカルドライバスタックを介して予想どおりに通信することを可能にする実デバイスドライバ228に渡される。
<結論>
上述の方法およびシステムは、仮想デバイスドライバを用いてリモート・クライアント・コンピュータデバイスをサーバコンピュータでサポートすることを説明している。本発明は構造的特徴および/または方法論的働きに特有の言葉で説明されているが、添付の請求項の範囲で規定された本発明は、必ずしも説明された特有な特徴または働きに限定されないことを理解されたい。むしろ、特有な特徴および働きは、請求の範囲に記載されている本発明を実装する例示の形として開示される。
リモート・クライアント・コンピュータで接続されるプラグ・アンド・プレイデバイスをサポートする仮想ドライバを有するサーバコンピュータを含むリモート・クライアント・アクセスシステムを示す図である。 サーバコンピュータおよびクライアントコンピュータを示し、サーバコンピュータおよびクライアントコンピュータのドライバスタックを示す図である。 サーバコンピュータ上の仮想ドライバを作成する処理を示す流れ図である。 クライアントコンピュータのデバイスをサーバコンピュータにリダイレクトする処理を示す流れ図である。

Claims (20)

  1. サーバコンピュータにて仮想ドライバを作成する方法であって、前記仮想ドライバは、前記サーバコンピュータと通信するクライアントコンピュータに接続されたデバイスに特有であり、
    前記デバイスが前記クライアントコンピュータに接続されるときに、前記デバイスを発見するステップと、
    前記デバイスに特有のデバイスドライバをインストールするステップと、
    前記デバイスドライバおよび前記デバイスに関連する情報を識別するステップと、
    前記仮想ドライバを作成するために前記情報を前記サーバコンピュータに通信するステップと
    を備えることを特徴とする方法。
  2. 前記発見するステップは、前記クライアントコンピュータに常駐するリモートアクセスアプリケーションにより実行されることを特徴とする請求項1に記載の方法。
  3. 前記デバイスドライバを前記インストールするステップは、前記デバイスが前記クライアントコンピュータに接続されるとき、プラグ・アンド・プレイ(PNP)デバイス操作の一部であることを特徴とする請求項1に記載の方法。
  4. 前記デバイスドライバを前記インストールするステップは、前記デバイスをサポートする他のドライバをインストールするステップをさらに備えることを特徴とする請求項1に記載の方法。
  5. 前記情報を識別するステップは、前記クライアントコンピュータにて常駐するリモートアクセスアプリケーションにより実行されることを特徴とする請求項1に記載の方法。
  6. 前記識別するステップは要求パケットを使用し、前記デバイスは特定の物理デバイスオブジェクトにより識別されることを特徴とする請求項1に記載の方法。
  7. 前記情報を前記通信するステップは、前記サーバコンピュータと前記クライアントコンピュータとの間の個別の仮想チャネルを用いることを特徴とする請求項1に記載の方法。
  8. クライアントコンピュータにおけるデバイスの制御をサーバコンピュータにリダイレクトする方法であって、
    前記サーバコンピュータにおいて仮想ドライバを作成するステップであって、前記仮想ドライバは前記デバイスに特有である、作成するステップと、
    前記仮想ドライバを介して前記クライアントコンピュータとサーバコンピュータとの間の通信を確立するステップと、
    前記クライアントコンピュータと前記サーバコンピュータとの間の前記通信を介して前記デバイスが利用可能であることを通知するステップと、
    前記デバイスが前記利用可能であることが判定されるときに、前記サーバコンピュータから前記デバイスに命令を通信するステップと
    を備えることを特徴とする方法。
  9. 前記仮想ドライバを前記作成するステップは、前記クライアントコンピュータから前記サーバコンピュータにより受信され、前記デバイスを説明する情報に基づくことを特徴とする請求項8に記載の方法。
  10. 前記通信を確立するステップは、個別の仮想チャネルを介することを特徴とする請求項8に記載の方法。
  11. 前記確立するステップは、前記クライアントコンピュータにて常駐するリモートアクセスアプリケーションを介することを特徴とする請求項8に記載の方法。
  12. 前記デバイスが前記利用可能であることを前記通知するステップは、前記クライアントコンピュータに常駐するリモートアクセスアプリケーションに対して行われ、かつ前記サーバコンピュータに常駐するアプリケーションに対して行われることを特徴とする請求項8に記載の方法。
  13. 前記命令を通信するステップは、前記クライアントコンピュータにて常駐する実デバイスドライバに前記命令を渡すステップを含むことを特徴とする請求項8に記載の方法。
  14. サーバコンピュータと、
    前記サーバコンピュータによりサポートされるクライアントコンピュータと、
    前記クライアントコンピュータに接続されるデバイスと、
    前記デバイスに特有であり前記クライアントコンピュータにインストールされるデバイスドライバと、
    前記デバイスに基づき作成され、前記サーバコンピュータ内のアプリケーションと通信して前記デバイスドライバのために働く、前記サーバコンピュータ内の仮想ドライバであって、前記アプリケーションは、前記デバイスを制御するために前記仮想ドライバおよびデバイスドライバに命令を与える、仮想ドライバと
    を備えることを特徴とするリモートアクセスシステム。
  15. 前記サーバコンピュータは、前記デバイスを識別するリダイレクタを含むことを特徴とする請求項14に記載のシステム。
  16. 前記リダイレクタは、前記サーバコンピュータとクライアントコンピュータの間の通信を行うリダイレクション・ライブラリを含むことを特徴とする請求項15に記載のシステム。
  17. 前記クライアントコンピュータは、前記サーバコンピュータとクライアントコンピュータの間の通信を行うリモート・サービス・アプリケーションを含むことを特徴とする請求項15に記載のシステム。
  18. 前記デバイスはプラグ・アンド・プレイ(PNP)デバイスであることを特徴とする請求項15に記載のシステム。
  19. デバイスドライバは、前記デバイスが前記クライアントコンピュータに接続されるときに、他のドライバと共にインストールされることを特徴とする請求項15に記載のシステム。
  20. 前記サーバコンピュータからの前記命令は、前記クライアントコンピュータにインストールされる前記ドライバスタックを介して通信されることを特徴とする請求項20に記載のシステム。
JP2008530059A 2005-09-09 2006-08-15 リモートシステムのためのプラグ・アンド・プレイデバイスのリダイレクション Active JP5133886B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US71602505P 2005-09-09 2005-09-09
US60/716,025 2005-09-09
US11/278,529 US8918530B2 (en) 2005-09-09 2006-04-03 Plug and play device redirection for remote systems
US11/278,529 2006-04-03
PCT/US2006/031708 WO2007032847A1 (en) 2005-09-09 2006-08-15 Plug and play device redirection for remote systems

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012103736A Division JP5335962B2 (ja) 2005-09-09 2012-04-27 リモートシステムのためのプラグ・アンド・プレイデバイスのリダイレクション

Publications (2)

Publication Number Publication Date
JP2009508212A true JP2009508212A (ja) 2009-02-26
JP5133886B2 JP5133886B2 (ja) 2013-01-30

Family

ID=37856627

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008530059A Active JP5133886B2 (ja) 2005-09-09 2006-08-15 リモートシステムのためのプラグ・アンド・プレイデバイスのリダイレクション
JP2012103736A Active JP5335962B2 (ja) 2005-09-09 2012-04-27 リモートシステムのためのプラグ・アンド・プレイデバイスのリダイレクション

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012103736A Active JP5335962B2 (ja) 2005-09-09 2012-04-27 リモートシステムのためのプラグ・アンド・プレイデバイスのリダイレクション

Country Status (6)

Country Link
US (2) US8918530B2 (ja)
EP (1) EP1941381A4 (ja)
JP (2) JP5133886B2 (ja)
KR (1) KR101292936B1 (ja)
CN (1) CN102819427B (ja)
WO (1) WO2007032847A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176471A (ja) * 2009-01-30 2010-08-12 Tachibana Eletech Co Ltd 接続機器利用システムおよびその方法
US8892758B2 (en) 2005-09-09 2014-11-18 Microsoft Corporation Plug and play device redirection for remote systems
JP2015118684A (ja) * 2013-11-12 2015-06-25 沖電気工業株式会社 通信システム及び通信プログラム
US10331501B2 (en) 2010-12-16 2019-06-25 Microsoft Technology Licensing, Llc USB device redirection for remote systems

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7600024B2 (en) * 2006-03-31 2009-10-06 Microsoft Corporation Restricting device access per session
US7788392B2 (en) * 2006-06-30 2010-08-31 Intel Corporation Mechanism for universal media redirection control
TWI421690B (zh) 2007-11-21 2014-01-01 Ind Tech Res Inst 智慧型遠端介面裝置、系統及其使用方法
US8789070B2 (en) 2007-12-06 2014-07-22 Wyse Technology L.L.C. Local device virtualization
US8010630B2 (en) * 2007-12-06 2011-08-30 Wyse Technology Inc. Local device redirection
US8793331B2 (en) * 2008-05-16 2014-07-29 Wyse Technology L.L.C. Multimedia redirection
US8645579B2 (en) * 2008-05-29 2014-02-04 Microsoft Corporation Virtual media device
WO2010138124A1 (en) * 2009-05-29 2010-12-02 Displaylink Corporation Loopback proxy
KR101645002B1 (ko) * 2009-06-23 2016-08-02 삼성전자주식회사 원격 컴퓨팅을 위한 중개 장치, 시스템, 및 가상 인터페이스 제공 방법
JP5369945B2 (ja) * 2009-07-08 2013-12-18 富士通株式会社 構成情報設定方法及び情報処理装置
US9104452B2 (en) * 2009-07-27 2015-08-11 Microsoft Technology Licensing, Llc Hybrid remote sessions
US8881140B1 (en) * 2009-09-04 2014-11-04 Symantec Corporation Systems and methods for virtualizing software associated with external computer hardware devices
KR20110064674A (ko) * 2009-12-08 2011-06-15 삼성전자주식회사 동적 로컬 기능 결합 장치 및 방법
US8554956B1 (en) 2010-02-24 2013-10-08 Open Invention Network Llc Method for creation of a device driver for a peripheral device
US8935434B1 (en) * 2010-02-24 2015-01-13 Open Invention Network, Llc Interconnection of peripheral devices on different electronic devices
US8554957B1 (en) 2010-02-24 2013-10-08 Open Invention Network, Llc Method for creation of device drivers and device objects for peripheral devices
US20110289282A1 (en) * 2010-05-18 2011-11-24 Microsoft Corporation Sessions for Direct Attached Storage Devices
US9183560B2 (en) 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
US8484641B2 (en) 2010-07-12 2013-07-09 International Business Machines Corporation Implementing a versioned virtualized application runtime environment
KR101251250B1 (ko) * 2011-07-01 2013-04-08 알서포트 주식회사 원격 디바이스 드라이버를 이용한 원격 제어 시스템 및 원격 디바이스 드라이버를 이용한 원격 제어 방법
KR101958902B1 (ko) * 2011-09-30 2019-07-03 삼성전자주식회사 전자기기들의 그룹 제어 방법 및 그를 위한 전자기기 관리 시스템
US8555409B2 (en) * 2011-11-02 2013-10-08 Wyse Technolgoy Inc. System and method for providing private session-based access to a redirected USB device or local device
US20130139184A1 (en) * 2011-11-30 2013-05-30 Lsi Corporation Method for embedding a host driver within a device
US20150334184A1 (en) * 2011-12-22 2015-11-19 Hew-Lett-Pack Development Company, L.P. Enabling execution of remotely-hosted applications using application metadata and client updates
US9183663B1 (en) 2011-12-30 2015-11-10 Graphon Corporation System for and method of classifying and translating graphics commands in client-server computing systems
US9064292B1 (en) 2011-12-30 2015-06-23 hopTo, Inc. System for and method of classifying and translating graphics commands in client-server computing systems
US8922569B1 (en) * 2011-12-30 2014-12-30 hopTo Inc. Cloud based system for and method of translating between disparate 3D graphics languages in client-server computing environments
KR101428962B1 (ko) * 2014-01-29 2014-08-12 (주) 퓨전데이타 호환성이 강화된 프린터 리다이렉션 제어시스템 및 방법
CN103809921B (zh) * 2014-02-19 2017-01-25 福建升腾资讯有限公司 Usb存储设备在进行usb映射时的加速方法
CN105100006A (zh) * 2014-05-07 2015-11-25 杭州迪普科技有限公司 一种代理服务、远程控制装置及方法
KR101996896B1 (ko) * 2014-12-29 2019-07-05 삼성전자주식회사 가상 디바이스 드라이버를 이용한 리소스 공유 방법 및 그 전자 디바이스
US9986040B2 (en) 2015-07-21 2018-05-29 Amadeus S.A.S. Communications management system with a separate peripherals server
US10097534B2 (en) * 2015-08-28 2018-10-09 Dell Products L.P. System and method to redirect hardware secure USB storage devices in high latency VDI environments
US9760730B2 (en) * 2015-08-28 2017-09-12 Dell Products L.P. System and method to redirect and unlock software secure disk devices in a high latency environment
US10114779B2 (en) * 2016-04-22 2018-10-30 Dell Products L.P. Isolating a redirected USB device to a set of applications
US10142425B2 (en) * 2016-05-23 2018-11-27 Wyse Technology L.L.C. Session reliability for a redirected USB device
US10223178B2 (en) * 2017-01-23 2019-03-05 Wyse Technology L.L.C. Enabling WPD devices to be managed at the capability level
US10530881B2 (en) * 2017-02-15 2020-01-07 Wyse Technology L.L.C. Redirecting scanners and printers over a WAN
US10657245B2 (en) * 2017-03-14 2020-05-19 Wyse Technology L.L.C. Dynamically controlling access to devices
CN107613020B (zh) 2017-10-16 2020-04-24 北京东土科技股份有限公司 一种设备管理方法及装置
US11119968B2 (en) * 2018-08-07 2021-09-14 Dell Products L.P. Increasing cache hits for USB request blocks that target a redirected USB device
US10798201B2 (en) * 2019-02-04 2020-10-06 Dell Products L.P. Redirecting USB devices via a browser-based virtual desktop infrastructure application
CN110032414B (zh) * 2019-03-06 2023-06-06 联想企业解决方案(新加坡)有限公司 远程控制台模式下安全的用户认证的装置和方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184793A (ja) * 1997-11-03 1999-07-09 Mustek Syst Inc 周辺機器制御システム
JP2002024154A (ja) * 2000-07-07 2002-01-25 Toshiba Corp プログラム実行方法およびプログラム実行装置
JP2002373144A (ja) * 2001-06-14 2002-12-26 Nec Corp デバイスドライバの組込み方式および方法
WO2004061642A2 (en) * 2002-12-16 2004-07-22 Unisys Corporation Universal multi-path driver for storage systems
JP2004527817A (ja) * 2001-01-02 2004-09-09 ハン ギュ キム ネットワークに直接に取付可能なディスクシステム
JP2004326776A (ja) * 2003-04-22 2004-11-18 Sharp Corp 分散型周辺デバイス制御システムおよび方法
JP2005210713A (ja) * 2004-01-07 2005-08-04 Microsoft Corp ポータブルメディアデバイスを使用するアドホック無線ネットワークの構成
JP2008515083A (ja) * 2004-09-29 2008-05-08 サイトリックス システムズ, インコーポレイテッド プレゼンテーションレベルプロトコルを使用しネットワークを介するイベント検出およびリダイレクションのためのシステムおよび方法

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5315698A (en) 1991-08-21 1994-05-24 Digital Equipment Corporation Method and apparatus for varying command length in a computer graphics system
FR2701475B1 (fr) * 1993-02-11 1995-03-31 Saint Gobain Vitrage Int Substrats en verre revêtus d'un empilement de couches minces, application à des vitrages à propriétés de réflexion dans l'infra-rouge et/ou à propriétés dans le domaine du rayonnement solaire.
US5748980A (en) * 1994-05-27 1998-05-05 Microsoft Corporation System for configuring a computer system
US5710941A (en) * 1995-02-28 1998-01-20 Microsoft Corporation System for substituting protected mode hard disk driver for real mode driver by trapping test transfers to verify matching geometric translation
US5761411A (en) * 1995-03-13 1998-06-02 Compaq Computer Corporation Method for performing disk fault prediction operations
US5732282A (en) 1995-06-30 1998-03-24 Sun Microsystems, Inc. Virtual device driver registry having a globally unique identifier supplying virtual driver call information to the requesting program
US6247067B1 (en) * 1996-03-29 2001-06-12 Sun Microsystems, Inc. Transparently converting program calls between interfaces
US5978912A (en) 1997-03-20 1999-11-02 Phoenix Technologies Limited Network enhanced BIOS enabling remote management of a computer without a functioning operating system
US6157965A (en) * 1998-02-27 2000-12-05 Intel Corporation System and method for binding a virtual device driver to a network driver interface
US6384931B1 (en) 1998-07-20 2002-05-07 Pitney Bowes Inc. Method and system for capturing destination addresses from label data
US6321279B1 (en) * 1998-09-14 2001-11-20 Compaq Computer Corporation System for implementing intelligent I/O processing in a multi-processor system by redirecting I/O messages to a target central processor selected from the multi-processor system
US6388679B1 (en) 1998-12-29 2002-05-14 Intel Corporation Multi-resolution computer display system
US6549934B1 (en) * 1999-03-01 2003-04-15 Microsoft Corporation Method and system for remote access to computer devices via client managed server buffers exclusively allocated to the client
US7349391B2 (en) 1999-03-19 2008-03-25 F5 Networks, Inc. Tunneling between a bus and a network
US7505455B1 (en) * 1999-03-19 2009-03-17 F5 Networks, Inc. Optimizations for tunneling between a bus and a network
US6466982B1 (en) * 1999-04-09 2002-10-15 Sun Microsystems, Inc. Exclusive use of peripheral devices
US6388687B1 (en) 1999-04-28 2002-05-14 General Electric Company Operator-interactive display menu showing status of image transfer to remotely located devices
US6874147B1 (en) * 1999-11-18 2005-03-29 Intel Corporation Apparatus and method for networking driver protocol enhancement
US6720983B1 (en) * 2000-01-05 2004-04-13 Hewlett-Packard Development Company, L.P. Digital feedback display panel for communicating computer status information
CN1169067C (zh) 2000-02-03 2004-09-29 英华达(上海)电子有限公司 支持用户终端设备的服务器结构
US7047534B2 (en) * 2000-03-17 2006-05-16 Microsoft Corporation Simplified device drivers for hardware devices of a computer system
US6810412B1 (en) * 2000-03-30 2004-10-26 Matsushita Electric Industrial Co., Ltd. Method for increasing network bandwidth across multiple network interfaces with single internet protocol address
US6788429B1 (en) 2000-04-14 2004-09-07 Hewlett-Packard Development Company, Lp. Remote print queue management
US6779185B1 (en) * 2000-04-24 2004-08-17 Microsoft Corporation Bluetooth miniport driver model
US6968307B1 (en) * 2000-04-28 2005-11-22 Microsoft Corporation Creation and use of virtual device drivers on a serial bus
DE60136247D1 (de) 2000-06-16 2008-12-04 Microsoft Corp System und Verfahren zur interaktiven Kommunikation zwischen Objekten in einer verteilten Rechnerumgebung
US6925528B2 (en) * 2000-06-20 2005-08-02 Storage Technology Corporation Floating virtualization layers
CA2315270A1 (en) 2000-08-04 2002-02-04 Charon Systems Inc. Printer driver system for remote printing
US7792923B2 (en) * 2000-10-13 2010-09-07 Zhe Khi Pak Disk system adapted to be directly attached to network
US6978299B1 (en) 2000-10-16 2005-12-20 Electronics For Imaging, Inc. Print driver apparatus and methods for forwarding a print job over a network
AU2002258358A1 (en) * 2000-10-27 2002-09-04 Softconnex Technologies Automatic embedded host configuration system and method
US7461144B1 (en) * 2001-02-16 2008-12-02 Swsoft Holdings, Ltd. Virtual private server with enhanced security
US7058788B2 (en) * 2001-02-23 2006-06-06 Falconstor Software, Inc. Dynamic allocation of computer memory
US20020196941A1 (en) * 2001-06-21 2002-12-26 Isaacson Shawn Ray Method and system for providing secure digital sound recording
US7207041B2 (en) * 2001-06-28 2007-04-17 Tranzeo Wireless Technologies, Inc. Open platform architecture for shared resource access management
US6993642B2 (en) * 2001-07-24 2006-01-31 Microsoft Corporation Method and system for creating and employing an operating system having selected functionality
US20030023770A1 (en) 2001-07-26 2003-01-30 Barmettler James W. Automated software driver installation
US7222359B2 (en) * 2001-07-27 2007-05-22 Check Point Software Technologies, Inc. System methodology for automatic local network discovery and firewall reconfiguration for mobile computing devices
US7213044B2 (en) 2001-08-31 2007-05-01 Microsoft Corporation Point-to-point data communication implemented with multipoint network data communication components
US7720045B2 (en) * 2003-05-02 2010-05-18 Microsoft Corporation Method to enable simultaneous connections to multiple wireless networks using a single radio
US6904489B2 (en) 2001-10-23 2005-06-07 Digi International Inc. Methods and systems for remotely accessing universal serial bus devices
US20030088642A1 (en) 2001-11-02 2003-05-08 International Business Machines Corporation Device operator panel operated as a web browser
US6943905B2 (en) 2001-12-20 2005-09-13 Sharp Laboratories Of America, Inc. Virtual print driver system and method
US7233669B2 (en) 2002-01-02 2007-06-19 Sony Corporation Selective encryption to enable multiple decryption keys
US7689673B2 (en) 2002-04-23 2010-03-30 Canon Kabushiki Kaisha Remote creation of printer instances on a workstation
US7006467B2 (en) * 2002-04-29 2006-02-28 Hereuare Communications, Inc. Method and system for simulating multiple independent client devices in a wired or wireless network
WO2003107221A1 (en) * 2002-06-12 2003-12-24 Fslogic, Inc. Layered computing systems and methods
WO2004006579A1 (en) 2002-07-09 2004-01-15 Kaleidescape, Inc. Content and key distribution system for digital content representing media streams
US7844577B2 (en) * 2002-07-15 2010-11-30 Symantec Corporation System and method for maintaining a backup storage system for a computer system
US6934711B2 (en) * 2002-10-01 2005-08-23 Hewlett-Packard Development Company, L.P. Method and arrangement for communicating with SCSI devices
US7562393B2 (en) * 2002-10-21 2009-07-14 Alcatel-Lucent Usa Inc. Mobility access gateway
US7698550B2 (en) * 2002-11-27 2010-04-13 Microsoft Corporation Native wi-fi architecture for 802.11 networks
US6993649B2 (en) * 2002-12-17 2006-01-31 John Alan Hensley Method of altering a computer operating system to boot and run from protected media
US20040128412A1 (en) 2002-12-27 2004-07-01 Harrison Edward R. Remoting peripheral devices
US20040190042A1 (en) 2003-03-27 2004-09-30 Ferlitsch Andrew Rodney Providing enhanced utilization of printing devices in a cluster printing environment
US7181382B2 (en) * 2003-05-08 2007-02-20 Microsoft Corporation System and method for testing, simulating, and controlling computer software and hardware
US7483532B2 (en) 2003-07-03 2009-01-27 Microsoft Corporation RTP payload format
US7404193B2 (en) * 2003-09-03 2008-07-22 Intel Corporation Method, system, and program for accessing device driver functions
US7117353B2 (en) * 2003-09-04 2006-10-03 Intel Corporation Methods and apparatus to enable console redirection in a multiple execution environment
US20050057519A1 (en) * 2003-09-12 2005-03-17 Coe Christopher D. Control board system to indicate hardware events
JP4334953B2 (ja) 2003-09-16 2009-09-30 株式会社日立製作所 パワーステアリング装置
US7913226B2 (en) * 2003-10-01 2011-03-22 Hewlett-Packard Development Company, L.P. Interposing a virtual machine monitor and devirtualizing computer hardware at runtime
US7421710B2 (en) * 2003-10-08 2008-09-02 Lsi Corporation System and method of creating virtual data paths using a multiple-path driver
US7146435B2 (en) 2003-11-07 2006-12-05 Hewlett-Packard Development Company, L.P. Distribution of hardware device installation and configuration software
US20050114870A1 (en) * 2003-11-21 2005-05-26 Song Dong H. System and method for executing an application on a secured run-time environment
US20050198233A1 (en) 2004-01-07 2005-09-08 Microsoft Corporation Configuring network settings of thin client devices using portable storage media
TW200534108A (en) * 2004-04-02 2005-10-16 Uli Electronics Inc Control method and device of a remote USB host
KR100706747B1 (ko) 2004-05-06 2007-04-11 (주)링크제니시스 무선통신 단말기의 원격제어 방법 및 시스템
US7506343B2 (en) * 2004-08-19 2009-03-17 International Business Machines Corporation System and method for passing information from one device driver to another
US7660910B2 (en) * 2004-08-30 2010-02-09 Lantronix, Inc. Secure communication port redirector
US7317914B2 (en) * 2004-09-24 2008-01-08 Microsoft Corporation Collaboratively locating disconnected clients and rogue access points in a wireless network
US9753754B2 (en) * 2004-12-22 2017-09-05 Microsoft Technology Licensing, Llc Enforcing deterministic execution of threads of guest operating systems running in a virtual machine hosted on a multiprocessor machine
US7810089B2 (en) * 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US7730157B2 (en) * 2005-02-03 2010-06-01 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for displaying information on a thin-client in communication with a network
KR100631620B1 (ko) 2005-05-06 2006-10-09 삼성전자주식회사 저장 수단에 대한 접근을 허용하는 장치 및 방법
US7378002B2 (en) * 2005-08-23 2008-05-27 Applied Materials, Inc. Aluminum sputtering while biasing wafer
US8918530B2 (en) * 2005-09-09 2014-12-23 Microsoft Corporation Plug and play device redirection for remote systems
US7865910B2 (en) * 2006-07-28 2011-01-04 Microsoft Corporation Bypassing class drivers through virtual driver enablement

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184793A (ja) * 1997-11-03 1999-07-09 Mustek Syst Inc 周辺機器制御システム
JP2002024154A (ja) * 2000-07-07 2002-01-25 Toshiba Corp プログラム実行方法およびプログラム実行装置
JP2004527817A (ja) * 2001-01-02 2004-09-09 ハン ギュ キム ネットワークに直接に取付可能なディスクシステム
JP2002373144A (ja) * 2001-06-14 2002-12-26 Nec Corp デバイスドライバの組込み方式および方法
WO2004061642A2 (en) * 2002-12-16 2004-07-22 Unisys Corporation Universal multi-path driver for storage systems
JP2004326776A (ja) * 2003-04-22 2004-11-18 Sharp Corp 分散型周辺デバイス制御システムおよび方法
JP2005210713A (ja) * 2004-01-07 2005-08-04 Microsoft Corp ポータブルメディアデバイスを使用するアドホック無線ネットワークの構成
JP2008515083A (ja) * 2004-09-29 2008-05-08 サイトリックス システムズ, インコーポレイテッド プレゼンテーションレベルプロトコルを使用しネットワークを介するイベント検出およびリダイレクションのためのシステムおよび方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6012004900; 広渕 崇宏、河合 栄治、藤川 和利、砂原 秀樹: 'USB/IP - a Peripheral Bus Extension for Device Sharing over IP Network' 2005 USENIX Annual Technical Conference , 200504, pp.47-60, USENIX Association *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892758B2 (en) 2005-09-09 2014-11-18 Microsoft Corporation Plug and play device redirection for remote systems
US8918530B2 (en) 2005-09-09 2014-12-23 Microsoft Corporation Plug and play device redirection for remote systems
JP2010176471A (ja) * 2009-01-30 2010-08-12 Tachibana Eletech Co Ltd 接続機器利用システムおよびその方法
US10331501B2 (en) 2010-12-16 2019-06-25 Microsoft Technology Licensing, Llc USB device redirection for remote systems
JP2015118684A (ja) * 2013-11-12 2015-06-25 沖電気工業株式会社 通信システム及び通信プログラム

Also Published As

Publication number Publication date
KR101292936B1 (ko) 2013-08-05
JP5133886B2 (ja) 2013-01-30
CN102819427A (zh) 2012-12-12
EP1941381A1 (en) 2008-07-09
KR20080053289A (ko) 2008-06-12
JP2012155750A (ja) 2012-08-16
JP5335962B2 (ja) 2013-11-06
US20070061477A1 (en) 2007-03-15
US8892758B2 (en) 2014-11-18
WO2007032847A1 (en) 2007-03-22
US20110035758A1 (en) 2011-02-10
CN102819427B (zh) 2015-11-18
EP1941381A4 (en) 2009-12-09
US8918530B2 (en) 2014-12-23

Similar Documents

Publication Publication Date Title
JP5335962B2 (ja) リモートシステムのためのプラグ・アンド・プレイデバイスのリダイレクション
JP5080007B2 (ja) アプリケーションサーバ環境におけるusbデバイス
US9934049B1 (en) Method for creation of device drivers and device objects for peripheral devices
US8868628B2 (en) Sharing computer data among computers
US20070174033A1 (en) Remote control device and method for accessing peripheral device remotely
US7568053B2 (en) USB composite device, USB communication system, and USB communication method
US20050162688A1 (en) Printing terminal, printing data outputting device, and computer and peripheral device using therefor
CN1399194A (zh) 创建和使用具有选定功能的操作系统的方法和系统
US20120131179A1 (en) Method and system for remote os installation capable of monitoring an installation procedure
JP5528034B2 (ja) ブレード・センタにおいてブレード・サーバを管理するための方法、装置、およびプログラム
CN101253489A (zh) 远程系统的即插即用设备重定向
US9087031B2 (en) Method and program for selective suspension of USB device
US6915524B2 (en) Method for controlling multiple storage devices from a single software entity
JP2005063128A (ja) 印刷ターミナルおよび印刷データ出力装置
JP2009032235A (ja) 単一の識別コードでインターネットおよび磁気記憶装置アクセスサービスを提供するハードディスクレス型コンピュータシステム、およびそのデータ送受信方法
KR100792686B1 (ko) Usb 플래시 메모리 저장장치 및 제공 방법
KR100869726B1 (ko) iSCSI와 UPnP 프로토콜에 기반한 가상 응용 수행지원 장치 및 이 장치의 이용방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120427

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121102

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121108

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5133886

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250