本頁說明IddCx 1.7中所做的變更。 針對 IddCx 1.7 建置的單一間接顯示驅動程式 (IDD) 二進位檔可以在 Windows 10 版本 1803 和更新版本上執行,使用運行時間檢查來確認 IddCx 1.7 中的 DDI 變更是否適用於該系統。 如需詳細資訊,請參閱 建置多個 Windows 版本的 WDF 驅動程式 。
IddCx 1.7 變更分為下列類別:
- IddCxGetVersion 版本已更新(控制台和遠端)。 如需IddCx相關版本資訊的完整清單,請參閱 IddCx 版本。
- 添加了改進的鼠標游標 DDI(可用於控制台和遠程,但僅適用於遠程)。
- IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS配接器旗標已被取代 (主控台及遠端)。
已更新IddCxGetVersion版本
IddCxGetVersion 在 Windows Server 2022 上傳回的 IddCx 版本已更新為 IDDCX_VERSION_IRON (0x1700) 。
更新了遠端驅動程式的滑鼠遊標
1.7 之前版本的 IddCx 中的遠端 IDD 僅接收過程式游標移動的滑鼠更新。 程序游標移動是由來自伺服器上應用程式或作業系統的 API 呼叫所造成的位置變更,而不是由從遠端用戶端插入遠端會話的滑鼠輸入所造成。 這會導致遠端會話特有的一些問題。 例如:
- 在 IddCx 1.6 和更早版本中,遠端驅動程式無法判斷 API 呼叫是否將滑鼠位置設定為相同的位置兩次。
- 如果沒有有效位置,就無法觸發游標形狀或可見度的變更。 這不是主控台 IDD 的問題。 不過,針對遠端驅動程式,當沒有任何有效的程式位置變更時,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_SESSION_DRIVER結合時,這個旗標才有效。 IddCxAdapterInitAsync 如果在未設定 IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_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結構會傳回下列其他游標資訊:
職位識別碼 (PositionId)
在 IddCx 1.7 之前, 游標 DDI 會使用 圖形識別碼 ,讓驅動程式知道圖形自上次更新以來是否已變更。 從 IddCx 1.7 開始,新增了位置 ID。 如果報告了新的游標位置,則位置 ID 值會變更,即使新位置的 X 和 Y 座標與舊位置相同。
位置有效旗標 (PositionValid)
PositionValid 會向驅動程式指出游標資訊結構中的游標位置是否有效。 此有效旗標涵蓋 X、 Y 和 PositionId 欄位。 如果未設定此旗標,則無法使用 X、 Y 和 PositionId 欄位。
已棄用IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS旗標 (主控台和遠端)
由於桌面呈現方式的變更,從 IddCx 1.7 開始,將不再在取得影格時提供移動區域。 相反地,於取得影格時提供的髒矩形清單,包含映像及IDDCX_METADATA的所有變更區域,而MoveRegionCount將始終為零。
驅動程式仍然可以為 IddCx 1.7 和更新版本設定 IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS 旗標,但不會有任何作用。 如果驅動程式設計為在 IddCx 1.7 之前執行並設定旗標,則該驅動程式必須具有處理移動的邏輯;否則,使用者在 IddCx 1.7 之前的系統上執行時會看到視覺問題。