Tugas driver mode pengguna Miracast untuk mendukung tampilan nirkabel Miracast pada Windows 8.1

Catatan

Mulai Windows 10 (WDDM 2.0), sistem operasi dikirim dengan tumpukan Miracast bawaan yang dapat bekerja pada GPU apa pun. Untuk informasi tentang tumpukan Microsoft Miracast dan persyaratan driver dan perangkat keras untuk mendukung tampilan Miracast mulai dari Windows 10, lihat dokumentasi berikut:

Pengembang driver tidak boleh lagi menerapkan tumpukan Miracast kustom. Microsoft mungkin menghapus dukungan untuk tumpukan Miracast kustom di versi Windows yang akan datang.

Untuk mengaktifkan tampilan nirkabel Miracast pada windows 8.1, Anda perlu membuat DLL unik mandiri yang mengimplementasikan driver mode pengguna Miracast. Driver ini dimuat dalam proses sesi 0 khusus. Tambahkan nama driver di pengaturan perangkat lunak perangkat dalam file INF sebagai MiracastDriverName:

[MyDevice_DeviceSettings]
HKR,, MiracastDriverName, %REG_SZ%, Miracast.dll

DLL harus memiliki fungsi ekspor bernama QueryMiracastDriverInterface yang dapat dipanggil sistem operasi. Biner pengandar ini tidak boleh menggunakan DLL pengandar tampilan mode-pengguna Direct3D yang ada.

Karena driver mode pengguna Miracast dimuat ke dalam proses UMDF0, tidak diperlukan versi Windows terpisah pada Windows (WOW) driver ini. Misalnya, driver versi 64-bit digunakan pada prosesor 64-bit.

Ketika sistem operasi siap untuk mempersiapkan sesi terhubung Miracast, sistem operasi memanggil fungsi CreateMiracastContext driver mode pengguna Miracast . Ketika fungsi ini dipanggil, driver mode pengguna Miracast mengalokasikan semua sumber daya perangkat lunak yang diperlukan untuk memulai sesi terhubung Miracast. Dalam panggilan ini, sistem operasi juga menyediakan pointer ke fungsi panggilan balik yang dapat dipanggil driver selama masa pakai konteks Miracast saat ini. Kemudian setelah tautan Real-Time Streaming Protocol (RTSP) dibuat, sistem operasi memanggil StartMiracastSession untuk benar-benar memulai sesi terhubung Miracast. Ketika driver merespons panggilan fungsi ini, driver harus menggunakan fungsi Winsock getaddrinfo , atau fungsi relevan lainnya, untuk mendapatkan alamat Protokol Internet (IP) sink Miracast dan menggunakan fungsi Winsock standar untuk membuat soket Protokol Desktop Jarak Jauh (HTCP) Hypertext Caching Protocol (HTCP).

Jika tampilan Miracast tersedia, driver mode pengguna Miracast memanggil fungsi MiracastIoControl yang disediakan sistem operasi untuk mengirim permintaan kontrol I/O ke driver miniport tampilan untuk melaporkan nilai kesadaran deteksi hot-plug kedatangan monitor (HPD). Driver mode pengguna Miracast juga harus meminta info dan kemampuan sink Miracast dan melaporkan beberapa info ini, seperti deskripsi monitor, ke driver miniport tampilan dengan memanggil MiracastIoControl.

Setelah sesi terhubung Miracast dimulai, dan setelah data streaming disiapkan dan sebelum mengirimkannya ke jaringan, driver perlu memanggil fungsi panggilan balik ReportStatistic untuk melaporkan statistik tautan Miracast ke sistem operasi.

Ketika sistem operasi menghentikan sesi terhubung Miracast, sistem ini memanggil fungsi StopMiracastSession driver mode pengguna Miracast . Menanggapi panggilan fungsi ini, driver harus menutup semua soket yang dibuatnya dan menghilangkan semua streaming data lebih lanjut. Driver tidak boleh menutup soket RTSP yang diberikan sistem operasi. Ini juga tidak boleh mengirim permintaan ke driver miniport tampilan untuk melaporkan HPD pada keberangkatan monitor.

Driver mode pengguna Miracast harus merilis semua sumber daya perangkat lunak yang dialokasikan di CreateMiracastContext sebagai respons terhadap panggilan sistem operasi ke fungsi DestroyMiracastContext .

Ketika driver miniport tampilan menerima permintaan DxgkDdiCommitVidPn untuk mematikan monitor Miracast yang terhubung, driver harus memanggil fungsi panggilan balik DxgkCbMiracastSendMessage yang disediakan sistem operasi untuk mengirim pesan ke driver mode pengguna Miracast. Driver mode pengguna Miracast kemudian harus menempatkan sink Miracast ke dalam status daya rendah.

Fungsi panggilan balik RegisterForDataRateNotifications secara opsional dapat dipanggil oleh driver mode pengguna Miracast untuk mendaftar dengan sistem operasi yang akan diterima, sekali kedua, pemberitahuan kualitas jaringan (QoS) dan bandwidth jaringan saat ini dari koneksi Miracast. Info jaringan ini disediakan oleh panggilan sistem operasi ke fungsi pfnDataRateNotify .

Driver mode pengguna Miracast juga dapat memanggil fungsi panggilan balik opsional ini yang disediakan oleh sistem operasi:

Fungsi Deskripsi
GetNextChunkData Menyediakan info tentang potongan pengodean berikutnya.
ReportSessionStatus Driver memanggil fungsi ini untuk melaporkan status sesi terhubung Miracast saat ini.