JP2017123153A - 一般的なデバイスリダイレクションを介したリモートセッションキーボードおよびマウス入力 - Google Patents

一般的なデバイスリダイレクションを介したリモートセッションキーボードおよびマウス入力 Download PDF

Info

Publication number
JP2017123153A
JP2017123153A JP2016225521A JP2016225521A JP2017123153A JP 2017123153 A JP2017123153 A JP 2017123153A JP 2016225521 A JP2016225521 A JP 2016225521A JP 2016225521 A JP2016225521 A JP 2016225521A JP 2017123153 A JP2017123153 A JP 2017123153A
Authority
JP
Japan
Prior art keywords
keyboard
mouse
input
computer
devices
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
JP2016225521A
Other languages
English (en)
Other versions
JP6315725B2 (ja
Inventor
クマール、サンディープ
Kumar Sandeep
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of JP2017123153A publication Critical patent/JP2017123153A/ja
Application granted granted Critical
Publication of JP6315725B2 publication Critical patent/JP6315725B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0227Cooperation and interconnection of the input arrangement with other functional units of a computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0383Remote input, i.e. interface arrangements in which the signals generated by a pointing device are transmitted to a PC at a remote location, e.g. to a PC in a LAN
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/24Keyboard-Video-Mouse [KVM] switch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

【課題】仮想コンピューティング・プラットフォームまたはホスティングシステムにおけるゲストオペレーティングシステムへのローカルデバイス入力のリダイレクションでのご認識を防止する。【解決手段】デバイスマネージャーは、クライアントコンピュータに接続され、一般的なデバイス・リダイレクションチャネルを経由してホスティングコンピュータへリダイレクトされたデバイス入力を有するその他のデバイスのキーボードおよびマウス機能を識別し、識別された機能からの入力イベントをそれぞれ扱うデバイスコンテキストエンジンを確立する。デバイスコンテキストエンジンは、キーボードおよびマウス機能を開始し、機能から入力イベントを受信すると、入力イベントをシステムキューのキューに入れてオペレーティングシステムに伝達する。【選択図】図3

Description

本発明は、仮想化されたコンピューティング分野に関し、特に、仮想コンピューティング・プラットフォームまたはホスティングシステムにおけるゲストオペレーティングシステムへのローカルデバイス入力のリダイレクションに関する。
仮想コンピューティング・プラットフォームにおいてゲストオペレーティングシステムとして展開されるオペレーティングシステムは、接続時のセッションに接続されているクライアントに接続されたキーボードおよびマウスデバイスのみを認識およびサポートするよう設計されていることがある。これらのOSでは、一般的なユニバーサル・シリアル・バス(USB)リダイレクションまたはヒューマン・インタフェース・デバイス(HID)リダイレクションなどといった別のリダイレクション技術を用いてリダイレクトされたキーボードおよびマウスデバイスを認識しない。この限界は、キーボードまたはマウス機能も含みうる複数の機能を持つ複合的または特殊なデバイスが用いられる場合に、進化する仮想コンピューティングの利用に対して悪影響を与えるおそれがある。このようなデバイスからの入力をリモートセッションでリダイレクトすることはできるが、ゲストオペレーティングシステムが実際にこの入力を利用することはできない。このようなデバイスの例としては、キーボードデバイスとしてキーパッドを備えるクレジットカード読取機や、ペン、タッチパッド、マウスなどの多面的機能を持つ描画タブレットがある。いずれの場合にも、一般的なリダイレクションによってリダイレクトされるデバイス入力は、キーボードまたはマウス入力として認識されず、実用的にはこうしたデバイスを十分に活用することができない。
クライアントコンピュータから、一般的なデバイス・リダイレクションチャネルを介して、専用キーボードおよびマウスによる入力を受け付けるホスティングコンピュータの動作方法を開示する。本方法は、上記のようにそれ以外ではこのような入力を受け付けることができないゲストオペレーティングシステムと合わせて利用することができる。よって、本方法は、一般的なデバイス・リダイレクションチャネルから直接このような入力を受け付けるようゲストオペレーティングシステムを修正することが(ビジネス上のまたは技術的な理由により)出来ない製品または環境においても展開することができる。
一局面において、本方法は、前記一般的なデバイス・リダイレクションチャネルと前記ホスティングコンピュータのシステムキューとのそれぞれに対するインターフェースを備えるデバイスマネージャーを実行するステップであって、前記システムキューは、キーボードおよびマウス入力イベントを前記ホスティングコンピュータのオペレーティングシステムに伝達するために用いられる、ステップを含む。また、前記システムキューは、前記クライアントコンピュータに接続された標準キーボードおよびマウスデバイスからリダイレクトされたキーボードおよびマウス入力を受信する専用仮想チャネルに対する独立したインターフェースを備える。
本方法は、また、前記デバイスマネージャーが、前記クライアントコンピュータに接続され、前記一般的なデバイス・リダイレクションチャネルを経由して前記ホスティングコンピュータへリダイレクトされたデバイス入力をそれぞれ有するその他のデバイスのキーボードおよびマウス機能を識別し、前記識別されたキーボードおよびマウス機能のそれぞれについてそこからの入力イベントを扱うデバイスコンテキストエンジンを確立するステップを含む。
本方法は、また、前記デバイスコンテキストエンジンが、キーボードおよびマウス入力イベントを受信するための前記その他のデバイスそれぞれの前記キーボードおよびマウス機能を開始し、前記各キーボードおよびマウス機能から入力イベントを受信すると、前記入力イベントを前記システムキューのキューに入れて前記キーボードおよびマウス入力イベントを前記オペレーティングシステムに伝達するステップを含む。
デバイスコンテキストエンジンを有するデバイスマネージャーは、仮想チャネルによって用いられる一般的なデバイス・リダイレクションチャネルからシステムキューへのパスを提供し、オペレーティングシステムへのキーボードおよびマウス入力を行う。よって、オペレーティングシステムは、このような入力を認識して正しく処理することができるネイティブのメカニズムを介して入力を受け取ることになる。
詳細な一局面において、前記オペレーティングシステムは、前記デバイスマネージャーを動作させることなく前記一般的なデバイス・リダイレクションチャネルから直接受信したキーボード/マウス入力を正しく処理するためのネイティブのサポートを持たなくてもよい。
また別の詳細な局面において、前記ホスティングシステムは、前記オペレーティングシステムをゲストオペレーティングシステムとして実行する仮想マシンを含む。前記仮想マシンは、前記別のクライアントのその他のデバイスが互いに論理的に分離されているという前提で、複数のクライアントと相互作用するマルチユーザ/マルチセッションプラットフォームを設けてもよい。
また別の詳細な局面において、前記その他のデバイスは、1以上のカード読取機およびタブレットデバイスであり、前記カード読取機はキーボードデバイスとしてキーパッドを備え、前記タブレットデバイスはスタイラスまたはタッチ入力ならびにマウス入力を含む複数の機能を備える。
また別の詳細な局面において、前記その他のデバイスは、ユニバーサル・シリアル・バス・デバイスであり、前記一般的なデバイス・リダイレクションチャネルは、ユニバーサル・シリアル・バス・デバイス・リダイレクションチャネルである。
また別の詳細な局面において、デバイス先行列挙およびコンテキストセットアップが動作の初期化フェーズ中に行われ、前記デバイスマネージャーは、(a)クライアントに接続された全てのキーボードおよびマウスデバイスを列挙し、(b)前記標準デバイスについて、プラグアンドプレイモニタを開始してデバイスの到着を待ち、到着した前記標準デバイスを前記システムに組み込み、(c)前記その他のデバイスについて、前記デバイスコンテキストエンジンを開始する。
また別の詳細な局面において、前記デバイスコンテキストエンジンは、デバイス取り外し時およびセッション切断時に自動的に停止するよう構成される。
また、コンピュータにより実行可能な、クライアントコンピュータから前記コンピュータに一般的なデバイス・リダイレクションチャネルを介して専用キーボードおよびマウスによる入力を受け付ける方法を行わせるコンピュータプログラムインストラクションを格納する非一過性のコンピュータ読取可能な媒体が開示され、この方法は実質的に上述したとおりである。
また、1以上のプロセッサと、前記プロセッサに連結され、前記ホスティングコンピュータをクライアントコンピュータへ連結されるよう構成された入力/出力回路と、前記プロセッサおよび前記入力/出力回路に連結され、コンピュータプログラムインストラクションを格納して、実行のために前記プロセッサに与えるよう構成されたメモリであって、前記インストラクションは、実行時に、前記ホスティングコンピュータに、前記クライアントコンピュータから、一般的なデバイス・リダイレクションチャネルを介して、専用キーボードおよびマウスによる入力を受け付ける方法を行わせるメモリと、を備えるホスティングコンピュータが開示され、この方法は実質的に上述したとおりである。
上記およびその他の目的、特徴、および利点は、添付の図面に示すように、以下に記載する本発明の個別の実施形態により明らかとなろう。図中、類似の参照符号は同一の要素を支持するものである。
図1は、コンピュータシステムのブロック図である。 図2は、キーボード/マウスマネージャーコンポーネントのブロック図である。 図3および図4は、動作のフローチャートである。 図5は、ハードウェア的に見たコンピュータのブロック図である。
本明細書に開示する個別の実施形態、実施例、および実装例の個々の特徴は、技術的に意味を成すならばどのように組み合わせてもよい。また、これらの特徴を組み合わせることにより、可能な限りあらゆる組み合わせ、変更例、および変形例が形成される。ただし、こうした組み合わせ、変更例、および/または変形例が明確に除外されているまたは実現困難である場合は除く。このような組み合わせ、変更例、および変形例の裏付けは、本明細書内に含まれるものと考えらえる。
図1に、ホスティングサーバー10、ネットワーク12、およびクライアントコンピュータまたは「クライアント」14を含むコンピュータシステムを示す。このシステムは、ホスティングサーバー10がハイパーバイザなどの仮想化ソフトウェア18とともに1以上の仮想マシン(VM)16を用いるコンピューティングサービスを提供する、仮想化されたコンピューティング用に構成されている。一般に知られるように、VM16は物理コンピュータを模したソフトウェア構成である。VMベースのコンピューティングは、モジュール性、リソース効率、および作業負荷の変化やハードウェアの停止または故障などに合せるための動的展開性などといった利点がある。VM16は、1以上のアプリケーション(APP)20、「ゲスト」オペレーティングシステム(ゲストO/S)22と呼ばれるオペレーティングシステム、後に詳細するシステムキュー(システムキュー)24というもの、キーボードおよびマウスマネージャー(KMM)26と呼ばれるデバイスマネージャー、デバイスバス28、および仮想チャネル30を含むものとして図示されている。ゲストO/S22は、通常はサーバー型マシン上で展開される「サーバー」型のオペレーティングシステムである。例としては、Windows Server(登録商標)オペレーティングシステムがある。
クライアント14は、一般的なデバイスリダイレクション(リダイレクト)機能32、および標準キーボード/マウス(標準KB/マウス)リダイレクション機能34を含む。標準キーボード/マウスリダイレクション機能34は、ローカルの標準キーボードおよび/またはマウス(標準KB/マウス)36からVM16のゲストO/S22へ、ネットワーク12および仮想チャネル30を介して、キーボード/マウス入力イベントのリダイレクトを行う。一般的なデバイスリダイレクション機能34は、接続されたその他のデバイスからVM16のゲストO/S22へ、ネットワーク12およびデバイスバス28を介して、入力イベントのリダイレクトを行う。すなわち、この場合の接続されたデバイスは、標準キーボードまたはマウスデバイスではないがキーボードおよび/またはマウス機能を備えるデバイス38である。このようなデバイスの例としては、「キーボード」デバイスとして提示されるキーパッドを備えるクレジットカード読取機がある。別の例として、ペン、タッチ入力、マウスなど、複数の機能を備えるタッチセンサー式パッドまたはタブレットがある。
この場合、システムキュー24は、ユーザのデバイス入力イベント、すなわち、いずれも「標準」キーボード/マウスデバイスからのものであるキーボード入力イベント(キーストローク)およびマウス入力イベント(パン移動、ボタンクリック、スクロール)と組み合わせての用途専用である。ここで、「標準」とは、デバイスの初期識別を意味する。標準キーボードは、専用にまたは主として、フルキーボード機能、すなわち、QWERTYキー、ファンクションキー、該当する場合はテンキーなどを備えるデバイスである。標準マウスは、専用にまたは主として、例えば光学マウスや2ボタンマウスなどのマウス機能を備えるデバイスである。このようなデバイスはオペレーティングシステム22とのユーザインタラクションに不可欠なものであるため、専門化した仮想チャネル30は、これらデバイスの入力イベントを受信してシステムキュー24に転送するよう規定され利用される。仮想チャネル30は標準キーボード/マウスデバイス36からの入力を容易に扱うことができるが、様々な入力特徴を有し通常は専用のデバイスドライバを必要とする一般的なデバイス入力、例えばUSB大容量ストレージデバイス、ジョイスティック、マイクなどからの入力を扱うようには設計されていない。
よって、クライアント14において、入力イベントを他のデバイス38からホスティングサーバー10へリダイレクトするために、一般的なデバイスリダイレクション機能32を用いる必要がある。一例においては、デバイス38はUSB(登録商標)デバイス(すなわち、クライアントコンピュータ14のUSBポートに接続可能なUSB対応のインターフェースを備えるデバイス)であってもよく、一般的なデバイスリダイレクション機能32は、いわゆる一般的なUSBリダイレクションである。その他の一般的なリダイレクション技術も知られている。残念ながら、ホスティングサーバー10の中には、VM16がキーボード/マウス入力を一般的なデバイス・リダイレクションチャネルを介して受信するためのネイティブのサポート(この場合はネットワーク12およびデバイスバス28を介した接続に対応する)を持たないものもある。一例において、これはゲストO/S22として展開されるWindows Server(登録商標)オペレーティングシステムの限界である。よって、現在当技術分野で知られているように、デバイス38のキーボードおよび/またはマウス機能は、一般的なデバイスリダイレクションを用いるだけでは認識されない。しかしながら、本明細書でさらに説明するようにKMM26およびその関連機能を用いることにより、ゲストO/S22がデバイス38のキーボードおよび/またはマウス機能を認識して利用することができる。
図1のシステムの一局面では、VM16は、別のクライアント14のデバイス36,38が互いに論理的に分離されているという前提で、複数のクライアント14と相互作用するマルチユーザ/マルチセッションプラットフォームである。VM16が一つのクライアント14とのみ相互作用を行う別の構成では、一般的なデバイスリダイレクション32に接続されたデバイス38からのキーボードおよびマウス入力の認識に用いられる別のメカニズムがあってもよい。ただし、このようなキーボード/マウス入力を別のクライアント14と関連付けるための規定はない。以下でさらに説明するように、本開示の技術は、キーボード/マウス入力とそれぞれのクライアント14との関連付けを果たすコンテキストをデバイスごとに確立する。
より具体的には、Windows Serverは、クライアント14のキーボードおよびマウスに接続された仮想チャネルインターフェースを介したキーボード/マウス入力をサポートする。このサーバーは、リモートセッション時に一般的な装置からキーボード/マウス入力を受け付けるようには設計されていない。本開示の技術は、効果的にこの制限を取り除くものである。理論的には、Windows Serverのリモートセッション面を設計しなおすなど、他の方法でこの制限を取り除くことができる。このような解決方法は様々な(技術上またはビジネス上の)理由により可能ではないことがあるため、本開示の技術では、そのかわりに所望の機能を与えるアドオンとしてKMM26を追加する。
図2に、KMM26の構造を示す。KMM26は、カーネルドライバ40および一組のデバイスコンテキストエンジン(DEV CTXT ENGINE)42を含み、各デバイスコンテキストエンジンは対応する「裏ルート」44によってカーネルドライバ40に接続されている。動作中、カーネルドライバ40は、デバイスバス28(図1)を介してデバイス38のキーボード/マウス入力46,48を受信し、対応コンテキストエンジン42に入力する(図1)。これらのコンテキストエンジン42は、この入力をゲストO/S22に伝達するために入力イベントをシステムキュー24に追加する役割を果たす。
図3に、「デバイス列挙およびコンテキストセットアップ」と呼ばれる動作の初期部分を示す。これらは、例えばVM16の初期化中に行われる。ステップ50で、KMM26をスタートする。ステップ52で、KMM26は、標準デバイス36も上記のキーボードまたはマウス機能を備えるデバイス38も、クライアント14に接続されたキーボードおよびマウスデバイスを全て列挙する。ステップ54で、デバイスバス28でホストされるデバイス(すなわち、キーボード/マウス機能を備えるデバイス38)と、仮想チャネル30によって接続されるデバイス(すなわち、標準キーボード/マウスデバイス36)とに分ける。後者については、ステップ56で、プラグアンドプレイモニタを開始して、デバイスの到着を待ち到着したデバイスをシステムに組み込む。デバイスバス28でホストされるデバイス38については、ステップ58で、被ホストデバイス38ごとにデバイスコンテキストエンジン42をスタートする。
以下に、図3の動作のさらに詳細を説明する。
1.一般的なデバイスリダイレクション32を介してリダイレクトされるデバイス38をカテゴライズし、接続時間中のセッションに現れる準キーボード/マウスデバイス36から区別する必要がある。よって、デバイス38はカテゴライズまたはタグ付けされて、CTX_EXT_DEVICE_KEYBOARDyaCTX_EXT_DEVICE_MOUSEといった特殊な属性タイプが付与される。デバイスをカテゴライズする方法には様々な方法があり、例えばデバイスに特殊な属性の設定デバイストポロジーの構文解析などにより、特定のルートバスと関連付けられることになる。
2.KMM26は、これらのタグを有するデバイスのみを列挙することにより、キーボードおよびマウスデバイス38の一覧を用意するユーザモードの消費者サービスを含む。セッション接続時、KMM26はセッション内で動作する。このサービスは、セッション内の全てのキーボードおよびマウスデバイスを列挙し、一般的なデバイスリダイレクション32によりリダイレクトされたキーボードおよびマウスデバイス38の一覧を用意する。KMM26は、突然のデバイス取り外しを検出し、ホットプラグインをサポートするプラグアンドプレイ機能を備える。
3.KMM26は、カテゴリ(キーボードおよびマウス)ごとに最大数N(設定可能)まで、各デバイスについてデバイスコンテキストエンジン42を生成する。各デバイスコンテキストエンジン42は、デバイスからの入力を受信してシステムキュー24に入力を処理するよう設定する。デバイスコンテキストエンジン42は、突然のデバイス取り外し時およびセッション切断時に自動的に停止することができる。
図4に、デバイスバス28を介して受信した入力イベントと関連するKMM26の動作を示す。ステップ60は、各被ホストデバイス38のキーボード/マウス機能の「開始」、または動作許可の初期化ステップである。ステップ62で、入力イベントを待つ。入力イベントは、通常のデバイス入力(例えば、ボタン押下やマウス動作など)、およびデバイスの引き抜き/切断イベントという、ふたつのカテゴリーに分けられる。通常のデバイス入力は、ゲストO/S22により最終的に認識されて処理されるように入力イベントデータのシステムキュー24への転送を含むステップ64で処理される。引き抜き/切断イベントは、デバイスコンテキストエンジン42を停止してこれ以上必要のない関連操作データをクリーンアップすることを含むステップ66で処理される。
図5に、コンピュータハードウェア的に見たホスティングサーバー10またはクライアント14などの物理的コンピュータの構成の例を示す。ハードウェアは、1以上のプロセッサ70、メモリ72、およびインターフェース回路74を含み、これらは1以上の高速データバス等のデータ相互接続76により相互接続されている。インターフェース回路74は、ネットワーク12(図1)へのハードウェア接続、およびおそらくは他の外部デバイス/接続(EXT DEV)を設ける。本明細書において、プロセッサ70とこれに接続されたメモリ72は、「処理回路」とも呼ばれる。また、ローカルに接続されたディスクドライブまたはフラッシュドライブなどのローカルストレージ78であってもよい。動作時には、メモリ72は、システムソフトウェア(例えば、オペレーティングシステム)のデータおよびインストラクション、ならびにプロセッサ70によって実行されてソフトウェアに規定された形式でハードウェアを機能させる1以上のアプリケーションプログラムを格納する。よって、キーボード/マウスマネージャーアプリケーションのインストラクションを実行するコンピュータハードウェアは、例えば、キーボード/マウスマネージャー回路またはキーボード/マウスマネージャーコンポーネントと呼ぶことができる。言うまでもなく、このような回路群またはコンポーネント群は、全て、当技術分野で一般に知られるように、様々なコンピュータプログラムを実行する1組以上のコンピュータプロセッシングハードウェアとして、実現可能であり相互に作用することができる。また、同じく技術分野で一般に知られるように、アプリケーションソフトウェアは、光もしくは磁気ディスク、フラッシュメモリ、またはその他の不揮発性半導体メモリなどの非一過性のコンピュータ読取可能な媒体に格納されてもよく、そこから回収されて処理回路によって実行される。
以上、本発明の各種の実施形態を具体的に図示および説明してきたが、当業者には、添付の請求項に規定される本発明の精神と範囲から逸脱することなく、形状や細部について様々な変更が可能であることは言うまでもない。

Claims (15)

  1. クライアントコンピュータから、一般的なデバイス・リダイレクションチャネルを介して、専用キーボードおよびマウスによる入力を受け付けるホスティングコンピュータの動作方法であって、
    前記一般的なデバイス・リダイレクションチャネルと前記ホスティングコンピュータのシステムキューとのそれぞれに対するインターフェースを備えるデバイスマネージャーを実行するステップであって、前記システムキューは、キーボードおよびマウス入力イベントを前記ホスティングコンピュータのオペレーティングシステムに伝達するために用いられ、前記クライアントコンピュータに接続された標準キーボードおよびマウスデバイスからリダイレクトされたキーボードおよびマウス入力を受信する専用仮想チャネルに対する独立したインターフェースを備える、ステップと、
    前記デバイスマネージャーは、前記クライアントコンピュータに接続され、前記一般的なデバイス・リダイレクションチャネルを経由して前記ホスティングコンピュータへリダイレクトされたデバイス入力をそれぞれ有するその他のデバイスのキーボードおよびマウス機能を識別し、前記識別されたキーボードおよびマウス機能のそれぞれについてそこからの入力イベントを扱うデバイスコンテキストエンジンを確立するステップと、
    前記デバイスコンテキストエンジンは、
    キーボードおよびマウス入力イベントを受信するための前記その他のデバイスそれぞれの前記キーボードおよびマウス機能を開始し、
    前記各キーボードおよびマウス機能から入力イベントを受信すると、前記入力イベントを前記システムキューのキューに入れて前記キーボードおよびマウス入力イベントを前記オペレーティングシステムに伝達するステップと、を含むホスティングコンピュータの動作方法。
  2. 請求項1に記載の方法であって、
    前記オペレーティングシステムは、前記デバイスマネージャーを動作させることなく前記一般的なデバイス・リダイレクションチャネルから直接受信したキーボード/マウス入力を正しく処理するためのネイティブのサポートを持たない、方法。
  3. 請求項1に記載の方法であって、
    前記ホスティングシステムは、前記オペレーティングシステムをゲストオペレーティングシステムとして実行する仮想マシンを含む、方法。
  4. 請求項3に記載の方法であって、
    前記仮想マシンは、前記別のクライアントのその他のデバイスが互いに論理的に分離されているという前提で、複数のクライアントと相互作用するマルチユーザ/マルチセッションプラットフォームを設ける、方法。
  5. 請求項1に記載の方法であって、
    前記その他のデバイスは、1以上のカード読取機およびタブレットデバイスであり、前記カード読取機はキーボードデバイスとしてキーパッドを備え、前記タブレットデバイスはスタイラスまたはタッチ入力ならびにマウス入力を含む複数の機能を備える、方法。
  6. 請求項1に記載の方法であって、
    前記その他のデバイスは、ユニバーサル・シリアル・バス・デバイスであり、前記一般的なデバイス・リダイレクションチャネルは、ユニバーサル・シリアル・バス・デバイス・リダイレクションチャネルである、方法。
  7. 請求項1に記載の方法であって、さらに、
    動作の初期化フェーズ中に行われるデバイス先行列挙およびコンテキストセットアップを含み、
    前記デバイスマネージャーは、
    クライアントに接続された全てのキーボードおよびマウスデバイスを列挙し、
    前記標準デバイスについて、プラグアンドプレイモニタを開始してデバイスの到着を待ち、到着した前記標準デバイスを前記システムに組み込み、前記その他のデバイスについて、前記デバイスコンテキストエンジンを開始する、方法。
  8. 請求項1に記載の方法であって、
    前記デバイスコンテキストエンジンは、デバイス取り外し時およびセッション切断時に自動的に停止するよう構成される、方法。
  9. コンピュータにより実行可能な、クライアントコンピュータから前記コンピュータに一般的なデバイス・リダイレクションチャネルを介して専用キーボードおよびマウスによる入力を受け付ける方法を行わせるコンピュータプログラムインストラクションを格納する非一過性のコンピュータ読取可能な媒体であって、前記方法は、
    前記一般的なデバイス・リダイレクションチャネルと前記ホスティングコンピュータのシステムキューとのそれぞれに対するインターフェースを備えるデバイスマネージャーを実行するステップであって、前記システムキューは、キーボードおよびマウス入力イベントを前記ホスティングコンピュータのオペレーティングシステムに伝達するために用いられ、前記クライアントコンピュータに接続された標準キーボードおよびマウスデバイスからリダイレクトされたキーボードおよびマウス入力を受信する専用仮想チャネルに対する独立したインターフェースを備える、ステップと、
    前記デバイスマネージャーは、前記クライアントコンピュータに接続され、前記一般的なデバイス・リダイレクションチャネルを経由して前記ホスティングコンピュータへリダイレクトされたデバイス入力をそれぞれ有するその他のデバイスのキーボードおよびマウス機能を識別し、前記識別されたキーボードおよびマウス機能のそれぞれについてそこからの入力イベントを扱うデバイスコンテキストエンジンを確立するステップと、
    前記デバイスコンテキストエンジンは、
    キーボードおよびマウス入力イベントを受信するための前記その他のデバイスそれぞれの前記キーボードおよびマウス機能を開始し、
    前記各キーボードおよびマウス機能から入力イベントを受信すると、前記入力イベントを前記システムキューのキューに入れて前記キーボードおよびマウス入力イベントを前記オペレーティングシステムに伝達するステップと、を含む、非一過性のコンピュータ読取可能な媒体。
  10. 請求項9に記載の非一過性のコンピュータ読取可能な媒体であって、
    前記オペレーティングシステムは、前記デバイスマネージャーを動作させることなく前記一般的なデバイス・リダイレクションチャネルから直接受信したキーボード/マウス入力を正しく処理するためのネイティブのサポートを持たない、非一過性のコンピュータ読取可能な媒体。
  11. 請求項9に記載の非一過性のコンピュータ読取可能な媒体であって、
    前記ホスティングシステムは、前記オペレーティングシステムをゲストオペレーティングシステムとして実行する仮想マシンを含む、非一過性のコンピュータ読取可能な媒体。
  12. 請求項11に記載の非一過性のコンピュータ読取可能な媒体であって、
    前記仮想マシンは、前記別のクライアントのその他のデバイスが互いに論理的に分離されているという前提で、複数のクライアントと相互作用するマルチユーザ/マルチセッションプラットフォームを設ける、非一過性のコンピュータ読取可能な媒体。
  13. 請求項9に記載の非一過性のコンピュータ読取可能な媒体であって、
    前記その他のデバイスは、1以上のカード読取機およびタブレットデバイスであり、前記カード読取機はキーボードデバイスとしてキーパッドを備え、前記タブレットデバイスはスタイラスまたはタッチ入力ならびにマウス入力を含む複数の機能を備える、非一過性のコンピュータ読取可能な媒体。
  14. 請求項9に記載の非一過性のコンピュータ読取可能な媒体であって、
    前記その他のデバイスは、ユニバーサル・シリアル・バス・デバイスであり、前記一般的なデバイス・リダイレクションチャネルは、ユニバーサル・シリアル・バス・デバイス・リダイレクションチャネルである、非一過性のコンピュータ読取可能な媒体。
  15. ホスティングコンピュータであって、
    1以上のプロセッサと、
    前記プロセッサに連結され、前記ホスティングコンピュータをクライアントコンピュータへ連結されるよう構成された入力/出力回路と、
    前記プロセッサおよび前記入力/出力回路に連結され、コンピュータプログラムインストラクションを格納して、実行のために前記プロセッサに与えるよう構成されたメモリであって、前記インストラクションは、実行時に、前記ホスティングコンピュータに、前記クライアントコンピュータから、一般的なデバイス・リダイレクションチャネルを介して、専用キーボードおよびマウスによる入力を受け付ける方法を行わせるメモリと、
    を備え、前記方法は、
    前記一般的なデバイス・リダイレクションチャネルと前記ホスティングコンピュータのシステムキューとのそれぞれに対するインターフェースを備えるデバイスマネージャーを実行するステップであって、前記システムキューは、キーボードおよびマウス入力イベントを前記ホスティングコンピュータのオペレーティングシステムに伝達するために用いられ、前記クライアントコンピュータに接続された標準キーボードおよびマウスデバイスからリダイレクトされたキーボードおよびマウス入力を受信する専用仮想チャネルに対する独立したインターフェースを備える、ステップと、
    前記デバイスマネージャーは、前記クライアントコンピュータに接続され、前記一般的なデバイス・リダイレクションチャネルを経由して前記ホスティングコンピュータへリダイレクトされたデバイス入力をそれぞれ有するその他のデバイスのキーボードおよびマウス機能を識別し、前記識別されたキーボードおよびマウス機能のそれぞれについてそこからの入力イベントを扱うデバイスコンテキストエンジンを確立するステップと、
    前記デバイスコンテキストエンジンは、
    キーボードおよびマウス入力イベントを受信するための前記その他のデバイスそれぞれの前記キーボードおよびマウス機能を開始し、
    前記各キーボードおよびマウス機能から入力イベントを受信すると、前記入力イベントを前記システムキューのキューに入れて前記キーボードおよびマウス入力イベントを前記オペレーティングシステムに伝達するステップと、を含む、ホスティングコンピュータ。
JP2016225521A 2015-11-24 2016-11-18 一般的なデバイスリダイレクションを介したリモートセッションキーボードおよびマウス入力 Expired - Fee Related JP6315725B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/950,400 2015-11-24
US14/950,400 US9563581B1 (en) 2015-11-24 2015-11-24 Remote-session keyboard and mouse input via generic device redirection

Publications (2)

Publication Number Publication Date
JP2017123153A true JP2017123153A (ja) 2017-07-13
JP6315725B2 JP6315725B2 (ja) 2018-04-25

Family

ID=57389287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016225521A Expired - Fee Related JP6315725B2 (ja) 2015-11-24 2016-11-18 一般的なデバイスリダイレクションを介したリモートセッションキーボードおよびマウス入力

Country Status (3)

Country Link
US (1) US9563581B1 (ja)
EP (1) EP3173906B1 (ja)
JP (1) JP6315725B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762531B (zh) * 2018-04-12 2022-07-22 百度在线网络技术(北京)有限公司 一种输入的方法、装置、设备和计算机存储介质
EP3750054B1 (en) * 2018-04-27 2023-08-16 Hewlett-Packard Development Company, L.P. Signals to i/o devices based on virtual computer messages
US11023250B2 (en) * 2019-03-20 2021-06-01 International Business Machines Corporation Resetting a peripheral device
US11487559B2 (en) * 2019-10-07 2022-11-01 Citrix Systems, Inc. Dynamically switching between pointer modes
CN112631721A (zh) * 2020-12-23 2021-04-09 湖南麒麟信安科技股份有限公司 一种usb设备与虚拟机热绑定的方法、装置及存储介质
CN114153321A (zh) * 2021-10-26 2022-03-08 河北汉光重工有限责任公司 一种虚拟键盘和鼠标实现远程控制的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134601A (ja) * 2007-11-30 2009-06-18 Fujitsu Ltd ディスクアクセス方式切替装置
US20140109180A1 (en) * 2009-12-14 2014-04-17 Citrix Systems, Inc. Methods and systems for preventing access to display graphics generated by a trusted virtual machine
WO2014076799A1 (ja) * 2012-11-15 2014-05-22 三菱電機株式会社 仮想計算機システム
US8782310B1 (en) * 2012-03-30 2014-07-15 Vmware, Inc. Use of mobile devices for user input and output

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320500A1 (en) * 2007-06-25 2008-12-25 Microsoft Corporation Remote human interface device in an aggregate computer system
US8863237B2 (en) * 2009-04-15 2014-10-14 Wyse Technology L.L.C. Remote-session-to-go method and apparatus
US9256393B2 (en) * 2011-12-21 2016-02-09 Seiko Epson Corporation Method for remote desktop control by remote host input devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134601A (ja) * 2007-11-30 2009-06-18 Fujitsu Ltd ディスクアクセス方式切替装置
US20140109180A1 (en) * 2009-12-14 2014-04-17 Citrix Systems, Inc. Methods and systems for preventing access to display graphics generated by a trusted virtual machine
US8782310B1 (en) * 2012-03-30 2014-07-15 Vmware, Inc. Use of mobile devices for user input and output
WO2014076799A1 (ja) * 2012-11-15 2014-05-22 三菱電機株式会社 仮想計算機システム

Also Published As

Publication number Publication date
EP3173906A3 (en) 2017-06-07
EP3173906A2 (en) 2017-05-31
US9563581B1 (en) 2017-02-07
EP3173906B1 (en) 2021-03-03
JP6315725B2 (ja) 2018-04-25

Similar Documents

Publication Publication Date Title
JP6315725B2 (ja) 一般的なデバイスリダイレクションを介したリモートセッションキーボードおよびマウス入力
CN106575243B (zh) 管理程序托管的虚拟机取证
US10367714B2 (en) Apparatus for testing and developing products of network computing based on open-source virtualized cloud
US9780998B2 (en) Method and apparatus for managing physical network interface card, and physical host
US8650273B2 (en) Virtual serial concentrator for virtual machine out-of-band management
US9400671B2 (en) Computer host with a baseboard management controller to manage virtual machines
US9354952B2 (en) Application-driven shared device queue polling
US9009702B2 (en) Application-driven shared device queue polling in a virtualized computing environment
US9690612B2 (en) Dynamically managing a serial port interface of virtualization software on host device wherein execution is performed not during boot sequence
CN103744716A (zh) 一种基于当前vcpu调度状态的动态中断均衡映射方法
US20170102963A1 (en) Method for Processing Interrupt by Virtualization Platform, and Related Device
US20190004783A1 (en) Modification of software behavior in run time
WO2015117539A1 (zh) 一种调用安装于电子设备上的应用的方法及装置
US8914796B2 (en) Pluggable activation engine extensions via virtual disks
US9286088B2 (en) User interface for interaction with virtual machine
Chang et al. On construction and performance evaluation of a virtual desktop infrastructure with GPU accelerated
WO2017045272A1 (zh) 虚拟机迁移方法和装置
US9817683B2 (en) Optimized remediation policy in a virtualized environment
US10152341B2 (en) Hyper-threading based host-guest communication
TWM440467U (en) Cloud platform integration system
US20190129680A1 (en) Techniques of remotely providing user input to thin client
US10152335B2 (en) Seamless host system gesture experience for guest applications on touch based devices
WO2024087958A1 (zh) 应用的功能界面的打开方法、装置和终端设备
CN117555650A (zh) 虚拟机间通信的方法、装置、电子设备及存储介质
JP2017010070A (ja) 準仮想化ネットワークデバイス、情報処理装置、情報処理方法、および情報処理プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180215

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: 20180227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180323

R150 Certificate of patent or registration of utility model

Ref document number: 6315725

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees