Citrix Virtual Apps and Desktops 7 2402 LTSR

Citrix ICA® 仮想チャネル

警告:

レジストリを誤って編集すると、オペレーティングシステムの再インストールが必要になるような深刻な問題が発生する可能性があります。Citrixは、レジストリエディターの誤った使用によって生じる問題が解決できることを保証できません。レジストリエディターの使用は、お客様ご自身の責任において行ってください。編集する前に、必ずレジストリをバックアップしてください。

ICA仮想チャネルとは何ですか

Citrix Workspace™アプリとCitrix Virtual Apps and Desktops™サーバー間の機能と通信の大部分は、仮想チャネルを介して行われます。仮想チャネルは、Citrix Virtual Apps and Desktopsサーバーでのリモートコンピューティングエクスペリエンスに不可欠な部分です。仮想チャネルは次の目的で使用されます。

  • オーディオ
  • COMポート
  • ディスク
  • グラフィック
  • LPTポート
  • プリンター
  • スマートカード
  • サードパーティ製カスタム仮想チャネル
  • ビデオ

新しい仮想チャネルは、より多くの機能を提供するために、Citrix Virtual Apps and DesktopsサーバーおよびCitrix Workspaceアプリ製品の新しいバージョンとともにリリースされることがあります。

仮想チャネル

仮想チャネルは、サーバー側アプリケーションと通信するクライアント側仮想ドライバーで構成されます。Citrix Virtual Apps and Desktopsには、さまざまな仮想チャネルが付属しています。これらは、提供されているソフトウェア開発キット (SDK) のいずれかを使用して、顧客やサードパーティベンダーが独自の仮想チャネルを作成できるように設計されています。

仮想チャネルは、さまざまなタスクを安全に実行する方法を提供します。たとえば、クライアント側デバイスと通信するCitrix Virtual Appsサーバーで実行されているアプリケーションや、クライアント側環境と通信するアプリケーションなどです。

クライアント側では、仮想チャネルは仮想ドライバーに対応します。各仮想ドライバーは特定の機能を提供します。一部は通常の操作に必要であり、その他はオプションです。仮想ドライバーはプレゼンテーション層プロトコルレベルで動作します。Windows Station (WinStation) プロトコル層によって提供されるチャネルを多重化することにより、いつでも複数のプロトコルをアクティブにすることができます。

次の機能は、このレジストリパスの下にあるVirtualDriverレジストリ値に含まれています。

HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0

または

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0 (64ビット用)

  • Thinwire3.0 (Required)
  • クライアントドライブ
  • クライアントプリンターキュー
  • クライアントプリンターポート
  • クリップボード
  • クライアント通信
  • クライアントオーディオ
  • ライセンスハンドラー (必須)
  • TWI (必須)
  • スマートカード
  • アイシーエーシーティーエル (必須)
  • エスエスピーアイ
  • トゥエインリーダー
  • ユーザーエクスペリエンス
  • Vd3d

注:

レジストリキーからこれらの値の1つ以上を削除することで、特定のクライアント機能を無効にできます。たとえば、クライアントクリップボードを削除したい場合は、Clipboardという単語を削除します。

このリストには、クライアント仮想ドライバーファイルとそれぞれの機能が含まれています。Citrix Virtual AppsおよびWindows向けCitrix Workspaceアプリは、これらのファイルを使用します。これらはダイナミックリンクライブラリ(ユーザーモード)の形式であり、Generic USB仮想チャネルで説明されているGeneric USBを除き、Windowsドライバー(カーネルモード)ではありません。

  • vd3dn.dll – デスクトップコンポジションのリダイレクトに使用されるDirect3D仮想チャネル
  • vdcamN.dll – 双方向オーディオ
  • vdcdm30n.dll – クライアントドライブマッピング
  • vdcom30N.dll - クライアントCOMポートマッピング
  • vdcpm30N.dll – クライアントプリンターマッピング
  • vdctln.dll – ICAコントロールチャネル
  • vddvc0n.dll – 動的仮想チャネル
  • vdeuemn.dll - エンドユーザーエクスペリエンス監視
  • vdgusbn.dll – Generic USB virtual channel
  • vdkbhook.dll – 透過的なキーパススルー
  • vdlfpn.dll – UDPライクなトランスポートを介したFramehawkディスプレイチャネル
  • vdmmn.dll – マルチメディアサポート
  • vdmrvc.dll – モバイル受信側仮想チャネル
  • vdmtchn.dll - マルチタッチサポート
  • vdscardn.dll – スマートカードサポート
  • vdsens.dll – センサー仮想チャネル
  • vdspl30n.dll – クライアントユニバーサルプリントドライバー
  • vdsspin.dll – Kerberos
  • vdtuin.dll – 透過ユーザーインターフェース
  • vdtw30n.dll – クライアント シンワイヤー
  • vdtwin.dll – Seamless
  • vdtwn.dll – Twain

一部の仮想チャネルは、他のファイルにコンパイルされています。例えば、クリップボードマッピングはwfica32.exeで利用できます。

64ビット互換性

Windows向けCitrix Workspaceアプリは64ビット互換です。32ビット用にコンパイルされたほとんどのバイナリと同様に、これらのクライアントファイルには64ビット用にコンパイルされた同等のものがあります。

  • brapi64.dll
  • confmgr.dll
  • ctxロギング.dll
  • ctxエムユーアイ.dll
  • icaconf.exe
  • icaconfs.dll
  • icafile.dll
  • pnipcn64.dll
  • pnsson.dll
  • エスソンコム.exe
  • エスソンスタブ.dll
  • vdkbhook64.dll

汎用USB仮想チャネル

汎用USB仮想チャネルの実装では、仮想チャネルドライバーvdgusbn.dllに加えて、2つのカーネルモードドライバーを使用します。

  • ctxusbm.sys
  • ctxusbr.sys

ICA仮想チャネルの仕組み

仮想チャネルは複数の方法でロードされます。Shell(サーバーの場合はWfShell、ワークステーションの場合はPicaShell)は一部の仮想チャネルをロードします。一部の仮想チャネルはWindowsサービスとしてホストされます。

Shellによってロードされる仮想チャネルモジュールの例:

  • イーユーイーエム
  • ツイン
  • クリップボード
  • マルチメディア
  • シームレスセッション共有
  • タイムゾーン

一部はカーネルモードとしてロードされます。例:

  • CtxDvcs.sys – 動的仮想チャネル
  • Icausbb.sys – 汎用USBデバイスリダイレクト
  • Picadm.sys – クライアントドライブマッピング
  • Picaser.sys – COMポートのリダイレクト
  • Picapar.sys – LPTポートのリダイレクト機能

サーバー側のグラフィック仮想チャネル

ctxgfx.exe は、ワークステーションとターミナルサーバーベースのセッションの両方でグラフィック仮想チャネルをホストします。Ctxgfx は、対応するドライバー(RDSH 用の Icardd.dll、ワークステーション用の vdod.dll および vidd.dll)と対話するプラットフォーム固有のモジュールをホストします。

XenDesktop® 3D Pro展開の場合、VDA上の対応するGPUにOEMグラフィックドライバーがインストールされます。Ctxgfx は、OEMグラフィックドライバーと対話するために特殊なアダプターモジュールをロードします。

Windowsサービスでの特殊チャネルのホスティング

Citrix Virtual Apps and Desktopsサーバーでは、さまざまなチャネルがWindowsサービスとしてホストされます。このようなホスティングは、セッション内の複数のアプリケーションとサーバー上の複数のセッションに対して、1対多のセマンティクスを提供します。このようなサービスの例には、次のものがあります。

  • Citrixデバイスリダイレクターサービス
  • Citrix動的仮想チャネルサービス
  • Citrixエンドユーザーエクスペリエンス監視サービス
  • Citrix ロケーションおよびセンサー仮想チャネルサービス
  • Citrix マルチタッチリダイレクトサービス
  • Citrix 印刷マネージャーサービス
  • Citrix スマートカードサービス
  • シトリックス オーディオ リダイレクション サービス (シトリックス バーチャル デスクトップ™ のみ)
  • Citrix ICA ステータスチャネルサービス

Citrix Virtual Apps のオーディオ仮想チャネルは、Windows Audio サービスを使用してホストされます。

サーバー側では、すべてのクライアント仮想チャネルは WinStation ドライバー (Wdica.sys) を介してルーティングされます。クライアント側では、wfica32.exe に組み込まれている対応する WinStation ドライバーが、クライアント仮想チャネルをポーリングします。この図は、仮想チャネルのクライアント-サーバー接続を示しています。

仮想チャネル接続(/ja-jp/citrix-virtual-apps-desktops/2402-ltsr/media/virtual-channel-connection.png)

この概要では、仮想チャネルを使用したクライアント-サーバー間のデータ交換について説明します。

  1. クライアントは Citrix Virtual Apps and Desktops サーバーに接続します。クライアントは、サポートする仮想チャネルに関する情報をサーバーに渡します。
  2. サーバー側アプリケーションが起動し、仮想チャネルへのハンドルを取得し、必要に応じてチャネルに関する追加情報を照会します。
  3. クライアント仮想ドライバーとサーバー側アプリケーションは、次の2つの方法を使用してデータを渡します。

    • サーバーアプリケーションがクライアントに送信するデータを持っている場合、データは直ちにクライアントに送信されます。クライアントがデータを受信すると、WinStation ドライバーは ICA ストリームから仮想チャネルデータを逆多重化し、直ちにクライアント仮想ドライバーに渡します。
    • クライアント仮想ドライバーがサーバーに送信するデータを持っている場合、データは、WinStation ドライバーが次にポーリングするときに送信されます。サーバーがデータを受信すると、仮想チャネルアプリケーションが読み取るまでキューに入れられます。データが受信されたことをサーバー仮想チャネルアプリケーションに通知する方法はありません。
  4. サーバー仮想チャネルアプリケーションが完了すると、仮想チャネルを閉じ、割り当てられたリソースを解放します。

Virtual Channel SDK を使用して独自の仮想チャネルを作成する

注:

Citrix SDK は、Citrix 開発者ポータル https://developer.cloud.com で入手できます。

Virtual Channel SDK を使用して仮想チャネルを作成するには、中程度のプログラミング知識が必要です。この方法を使用して、クライアントとサーバー間の主要な通信パスを提供します。たとえば、セッション内のプロセスで使用するために、スキャナーなどのデバイスのクライアント側での使用を実装する場合などです。

注:

  • Virtual Channel SDK は、仮想チャネルのサーバー側を記述するために WFAPI SDK を必要とします。

  • Citrix Virtual Apps and Desktops のセキュリティが強化されたため、ICA セッションで開くことを許可する仮想チャネルを指定する必要があります。詳細については、「仮想チャネル許可リストポリシー設定」を参照してください。

ICA Client Object SDK を使用して独自の仮想チャネルを作成する

ICA Client Object (ICO) を使用して仮想チャネルを作成する方が、Virtual Channel SDK を使用するよりも簡単です。プログラムで CreateChannels メソッドを使用して名前付きオブジェクトを作成することで、ICO を使用します。

重要:

Citrix Receiver for Windows のバージョン 10.00 以降 (および Citrix Workspace apps for Windows) でセキュリティが強化されたため、ICO 仮想チャネルを作成する際には追加の手順を実行する必要があります。

仮想チャネルのパススルー機能

Citrix が提供するほとんどの仮想チャネルは、ICA セッション内 (パススルーセッションとも呼ばれます) で Citrix Workspace app for Windows を使用する場合、変更なしで動作します。クライアントを複数のホップで使用する際には考慮事項があります。

次の機能は、シングルホップまたはマルチホップで同じように動作します。

  • クライアントCOMポートマッピング
  • クライアントドライブマッピング
  • クライアントプリンターマッピング
  • クライアントUPD
  • エンドユーザーエクスペリエンス監視
  • 汎用USB
  • ケルベロス
  • マルチメディアサポート
  • スマートカードサポート
  • 透過的なキーパススルー
  • ツウェイン

待ち時間の固有の性質、および各ホップで実行される圧縮と解凍、レンダリングなどの要因により、クライアントが経由するホップが増えるごとにパフォーマンスが影響を受ける可能性があります。影響を受ける領域は次のとおりです。

  • 双方向オーディオ
  • ファイル転送
  • 汎用USBリダイレクト
  • シームレス
  • シンワイヤー

重要:

デフォルトでは、パススルーセッションで実行されているクライアントのインスタンスによってマップされたクライアントドライブは、接続しているクライアントのクライアントドライブに制限されます。

Citrix Virtual DesktopセッションとCitrix Virtual Appセッション間の仮想チャネルのパススルー機能

Citrixが提供するほとんどの仮想チャネルは、Citrix Virtual Desktopsサーバー上のICAセッション内(パススルーセッションとも呼ばれます)でCitrix Workspaceアプリ for Windowsを使用する場合、変更されずに動作します。

具体的には、Citrix Virtual Desktopsサーバーには、picaPassthruHookを実行するVDAフックがあります。このフックにより、クライアントはCPSサーバー上で実行されていると認識し、クライアントを従来のパススルーモードにします。

以下の従来の仮想チャネルとその機能をサポートしています。

  • クライアント
  • クライアントCOMポートマッピング
  • クライアントドライブマッピング
  • クライアントプリンターマッピング
  • 汎用USB(パフォーマンス上の理由により制限あり)
  • マルチメディアサポート
  • スマートカードサポート
  • シングルサインオン
  • 透過的なキーパススルー

セキュリティとICA仮想チャネル

仮想チャネルの計画、開発、実装において、使用のセキュリティ確保は重要な部分です。このドキュメント全体を通して、セキュリティの特定の領域に関するいくつかの参照があります。

ベストプラクティス

接続時および再接続時に仮想チャネルを開きます。ログオフ時および切断時に仮想チャネルを閉じます。

仮想チャネル関数を使用するスクリプトを作成する際は、以下のガイドラインを念頭に置いてください。

仮想チャネルの命名:

最大32個の仮想チャネルを作成できます。32個のチャネルのうち17個は、特別な目的のために予約されています。

  • 仮想チャネル名は7文字以内である必要があります。

  • 最初の3文字はベンダー名に予約されており、次の4文字はチャネルタイプに予約されています。たとえば、CTXAUDはCitrixオーディオ仮想チャネルを表します。

仮想チャネルは、7文字(またはそれ以下)のASCII名で参照されます。ICAプロトコルの以前のバージョンでは、仮想チャネルには番号が付けられていました。現在、番号はASCII名に基づいて動的に割り当てられるため、実装が容易になっています。社内でのみ仮想チャネルコードを開発しているユーザーは、既存の仮想チャネルと競合しない任意の7文字の名前を使用できます。数字と大文字・小文字のASCIIのみを使用してください。独自の仮想チャネルを追加する際は、既存の命名規則に従ってください。いくつかの事前定義されたチャネルがあります。事前定義されたチャネルはOEM識別子CTXで始まり、Citrixのみが使用できます。

ダブルホップのサポート:

仮想チャネル ダブルホップはサポートされていますか?
オーディオ いいえ
ブラウザコンテンツリダイレクト いいえ
CDM はい
シーイーアイピー いいえ
クリップボード はい
コンティニュアム (MRVC) いいえ
コントロールVC はい
HTML5ビデオリダイレクト (v1) はい
キーボード、マウス はい
マルチタッチ いいえ
エヌエスエーピーブイシー いいえ
印刷 はい
センスブイシー いいえ
スマートカード はい
トゥエイン はい
USB 仮想チャネル はい
USB VC を使用する WAYCOM デバイス -K2M はい
Webカメラビデオ圧縮 はい
Windowsメディアリダイレクト はい

関連項目

  • ICA 仮想チャネル SDK
  • Citrix Developer Network は、Citrix SDK の使用に関するすべての技術リソースとディスカッションの場です。このネットワークでは、SDK、サンプルコードとスクリプト、拡張機能とプラグイン、およびSDKドキュメントにアクセスできます。また、Citrix Developer Network フォーラムも含まれており、各Citrix SDKに関する技術的な議論が行われています。