次の方法で共有


IddCx バージョン 1.7 以降向けの更新

このページでは、IddCx 1.7 で行われた変更について説明します。 IddCx 1.9 に対してビルドされた単一の間接ディスプレイ ドライバー (IDD) バイナリは、ランタイム チェックを使用して Windows 10 バージョン 1803 以降で実行し、IddCx 1.9 の DDI 変更がそのシステムで使用できるかどうかを確認できます。 詳細については、 複数のバージョンの Windows 用の WDF ドライバーの構築 を参照してください 。

IddCx 1.7 の変更は、次のカテゴリに分類されます。

  • IddCxGetVersion バージョンが 更新されました (コンソールとリモート)。 IddCx 関連のバージョン情報の完全な一覧については、 IddCx のバージョン を参照してください。
  • 改善されたマウス カーソル DDI が追加されました (コンソールとリモートで使用できますが、リモートからのみ役立ちます)。
  • IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS アダプター フラグ は非推奨になりました (コンソールとリモート)。

更新された IddCxGetVersion バージョン

Windows Server 2022 の IddCxGetVersion によって返される IddCx バージョンは、IDDCX_VERSION_IRON (0x1700) に更新されました。

リモート ドライバーのマウス カーソルを更新しました

1.7 より前の IddCx バージョンのリモート ID は、 手続き型 カーソル移動のマウス更新のみを受け取ります。 手続き型カーソル移動は、リモート クライアントからリモート セッションに挿入されたマウス入力ではなく、アプリケーションまたはサーバー上の OS からの API 呼び出しによって発生する位置変更です。 これにより、リモート セッションに固有の問題が発生します。 次に例を示します。

  1. IddCx 1.6 以前では、リモート ドライバーは、API 呼び出しがマウス位置を同じ位置に 2 回設定したかどうかを確認できません。
  2. カーソルの形状または表示の変更は、有効な位置がないとトリガーできません。 これはコンソール ID の問題ではありません。 ただし、リモート ドライバーの場合、有効な手続き型の位置変更がない場合、DDI はクライアントでカーソルをジャンプさせる位置値を指定する必要があります。

これらの問題に対処するために、IddCx 1.7 以降で次の変更が行われました。

IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION フラグが追加されました

IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION アダプター フラグが IDDCX_ADAPTER_FLAGS に追加され、リモート ドライバーがマウス位置の更新プログラムをすべて受け取ることができるようにしました。 このフラグを使用すると、リモート ドライバーは、手続き型の移動だけでなく、すべてのカーソル位置の変更を受け取ることをアダプターごとに示します。 このフラグは、 IDDCX_ADAPTER_FLAGS_REMOTE_Standard Edition SSION_DRIVERと組み合わせた場合にのみ有効です。 iddCxAdapterInitAsync は、 IDDCX_ADAPTER_FLAGS_REMOTE_SSION_DRIVER なしで IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITIONが設定されている場合に失敗します。

カーソル位置に IddCxMonitorQueryHardwareCursor2 DDI が追加されました

IddCxMonitorQueryHardwareCursor2 DDI は、カーソルの位置情報を提供します。 この DDI は、 IDARG_OUT_QUERY_HWCURSOR2 構造体を返します。 リモート ドライバーとコンソール ドライバーの両方でこの DDI を呼び出すことができますが、 IDARG_OUT_QUERY_HWCURSOR2 構造体の情報は、コンソール ドライバーにはあまり関係ありません。

IDARG_OUT_QUERY_HWCURSOR2 構造体は 、次の追加カーソル情報を返します。

  • 位置 ID (PositionId)

    IddCx 1.7 より前では、 カーソル DDI図形 ID を使用するため、ドライバーは前回の更新以降に図形が変更されたかどうかを確認できます。 IddCx 1.7 以降では、位置 ID が追加されました。 新しい位置の XY 座標が古い位置と同じである場合でも、新しいカーソル位置が報告された場合、位置 ID の値が変更されます。

  • 位置が有効なフラグ (PositionValid)

    PositionValid は、カーソル情報構造体内のカーソル位置が有効かどうかをドライバーに示します。 この有効なフラグは、 XY および PositionId フィールドを対象とします。 このフラグが設定されていない場合は、 XY および PositionId の各フィールドを使用できません。

IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS フラグは非推奨になりました (コンソールとリモート)

デスクトップのレンダリング方法が変更されたため、IddCx 1.7 以降の移動領域は、取得フレーム時間に提供されなくなります。 代わりに、取得フレーム時間に提供されるダーティ rects リストには、イメージと IDDCX_METADATAのすべての変更された領域が含まれます。MoveRegionCount は常に 0 になります。

ドライバーは IddCx 1.7 以降の IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS フラグを設定できますが、効果はありません。 ドライバーが IddCx 1.7 より前で実行され、フラグを設定するように設計されている場合、そのドライバーには移動を処理するロジックが必要です。そうしないと、IddCx 1.7 より前のシステムで実行しているときに視覚的な問題がユーザーに表示されます。