Objek IddCx

IddCx (Indirect Display Driver Class eXtension) menggunakan model objek UMDF yang dapat diperluas untuk mewakili komponen perangkat tampilan tidak langsung. Model objek UMDF memungkinkan penyimpanan khusus driver dikaitkan dengan setiap objek IddCx (dan karenanya UMDF). Lihat Model Objek UMDF untuk informasi selengkapnya.

Urutan pembuatan objek IDD adalah:

  • Driver pertama kali membuat objek IDDCX_ADAPTER .
  • Driver kemudian membuat objek IDDCX_MONITOR .
  • Setelah objek IDDCX_ADAPTER dan IDDCX_MONITOR dibuat, OS membuat objek IDDCX_SWAPCHAIN dan IDDCX_OPMCTX dan mengirimkannya ke driver.

Bagian berikut ini memberikan detail selengkapnya tentang objek ini.

IDDCX_ADAPTER

Objek ini mewakili adaptor tampilan logis tunggal yang dibuat oleh driver dalam proses dua tahap:

Model IDD tidak memiliki panggilan balik adaptor penghancuran eksplisit. Setelah urutan inisialisasi adaptor berhasil diselesaikan, adaptor valid hingga perangkat UMDF yang diteruskan pada waktu inisialisasi dihentikan. Saat membuat adaptor, driver menyediakan informasi adaptor statis tentang adaptor tampilan tidak langsung.

Menangani perangkat multifungsi

Dalam kasus yang paling sederhana, ada pemetaan satu-ke-satu antara objek perangkat UMDF yang dibuat oleh subsistem plug and play untuk perangkat tampilan tidak langsung yang terpasang dan objek IDDCX_ADAPTER yang dibuat driver tampilan tidak langsung (IDD).

Mungkin ada skenario yang lebih kompleks di mana satu dongle tampilan tidak langsung berisi beberapa perangkat plug and play. Misalnya, solusi tampilan tidak langsung mungkin memiliki beberapa fungsi perangkat PnP seperti mikrofon (driver audio) dan kamera (driver video). Dalam situasi seperti itu, IDD bertanggung jawab untuk membuat satu objek IDDCX_ADAPTER untuk beberapa objek perangkat UMDF yang dibuat untuk setiap perangkat PnP. Driver perlu mempertimbangkan hal-hal berikut dalam skenario ini:

  • IDDCX_ADAPTER hanya boleh dibuat setelah semua perangkat PnP yang membentuk solusi tampilan tidak langsung telah berhasil dimulai.
  • Driver harus melewati satu WDFDEVICE saat membuat adaptor, sehingga memerlukan logika untuk memutuskan perangkat UMDF mana yang akan dilewatinya.
  • Jika salah satu perangkat yang membentuk adaptor tampilan tidak langsung mengalami kesalahan perangkat keras, driver harus melaporkan semua perangkat yang membentuk adaptor sebagai kesalahan.

IDDCX_MONITOR

Objek ini mewakili monitor tertentu yang terhubung ke salah satu konektor pada adaptor tampilan tidak langsung.

Driver membuat objek monitor dalam proses dua tahap:

  • Ini pertama-tama memanggil panggilan balik IddCxMonitorCreate untuk membuat objek IDDCX_MONITOR .
  • Kemudian memanggil panggilan balik IddCxMonitorArrival untuk menyelesaikan kedatangan monitor.

Ketika monitor dicabut, driver memanggil panggilan balik IddCxMonitorDeparture untuk melaporkan monitor telah dicabut, yang menyebabkan objek IDDCX_MONITOR dihancurkan. Bahkan jika monitor yang sama tidak dicolokkan kemudian disambungkan kembali, urutan IddCxMonitorDeparture/IddCxMonitorArrival perlu dipanggil lagi.

IDDCX_MONITOR adalah anak dari objek IDDCX_ADAPTER.

IDDCX_SWAPCHAIN

Objek ini mewakili swapchain yang akan menyediakan gambar desktop untuk ditampilkan pada monitor yang terhubung. Swapchain memiliki beberapa buffer untuk memungkinkan OS menyusun gambar desktop berikutnya dalam satu buffer saat IDD mengakses buffer lain. IDDCX_SWAPCHAIN adalah anak dari IDDCX_MONITOR sehingga hanya akan ada satu swapchain yang ditetapkan ke monitor tertentu kapan saja.

OS membuat dan menghancurkan objek IDDCX_SWAPCHAIN dan menetapkan/menghapus penetapannya ke pemantauan menggunakan panggilan Ddi EvtIddCxMonitorAssignSwapChain dan EvtIddCxMonitorUnassignSwapChain Ddi.

IDDCX_OPMCTX

Objek ini mewakili konteks Output Protection Manager (OPM) aktif dari konteks OPM aplikasi tunggal yang dapat digunakan aplikasi untuk mengontrol perlindungan output pada satu monitor. Beberapa konteks OPM dapat aktif pada monitor tertentu secara bersamaan. OS memanggil driver untuk membuat dan menghancurkan konteks OPM menggunakan panggilan DDI EvtIddCxMonitorOPMCreateProtectedOutput dan EvtIddCxMonitorOPMDestroyProtectedOutput .