Model Pemrograman UMDF DDI

Peringatan

UMDF 2 adalah versi terbaru UMDF dan supersedes UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2.

Sampel UMDF 1 yang diarsipkan dapat ditemukan di Windows 11, versi 22H2 - Pembaruan Sampel Driver Mei 2022.

Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.

Kerangka kerja dan driver UMDF berkomunikasi melalui UMDF DDI. UMDF DDI mirip dengan KMDF DDI kecuali bahwa UMDF DDI didasarkan pada COM. Oleh karena itu, penulis driver yang akrab dengan KMDF akan memahami UMDF.

Untuk setiap jenis objek kerangka kerja, UMDF mendefinisikan antarmuka untuk memanipulasi instans objek. Setiap antarmuka mendukung metode dan properti. Metode menentukan tindakan yang dapat diambil atas nama objek dan properti yang ditetapkan dan mengambil karakteristik objek. Beberapa antarmuka diimplementasikan oleh kerangka kerja dan yang lain diimplementasikan oleh driver. Antarmuka yang diekspos oleh objek kerangka kerja adalah objek IWDF<formulir, sementara antarmuka panggilan balik peristiwa yang diekspos oleh driver adalah tindakan> objek><formulir I<, di mana <objek> mewakili antrean, permintaan, dan sebagainya, dan <tindakan> menunjukkan apa yang dilakukan antarmuka.> Metode antarmuka panggilan balik dimulai dengan "Aktif".

Driver UMDF berkomunikasi dengan objek kerangka kerja melalui metode dan propertinya. Kerangka kerja berkomunikasi dengan driver melalui pemberitahuan peristiwa, yang merupakan fungsi panggilan balik yang dapat dipanggil kerangka kerja untuk memberi tahu driver tentang peristiwa tertentu. Untuk mendaftarkan fungsi panggilan balik, driver dapat memanggil, misalnya, metode objek kerangka kerja berikut dan dapat meneruskan pointer ke antarmuka IUnknown yang terkait dengan semua antarmuka untuk fungsi panggilan balik yang didukung driver.

Sebagai contoh komunikasi driver ke kerangka kerja, pertimbangkan objek antrean I/O default perangkat. Driver dapat memanggil metode, seperti IWDFIoQueue::GetState, untuk mengambil informasi status tentang antrean I/O, atau IWDFIoQueue::RetrieveNextRequest untuk mengambil permintaan dari antrean I/O. Driver juga dapat meminta pemberitahuan pada antrean I/O dengan memanggil metode IWDFDevice::CreateIoQueue untuk mendaftarkan antarmuka panggilan balik, seperti IQueueCallbackRead dan IQueueCallbackWrite. Metode antarmuka ini kemudian dipanggil oleh kerangka kerja ketika aplikasi mengirim permintaan baca dan tulis.

Kerangka kerja menyediakan sinkronisasi apa pun yang diperlukan di seluruh metode panggilan balik driver. Secara default, kerangka kerja disinkronkan pada tingkat objek perangkat; artinya, kerangka kerja tidak secara bersamaan memanggil metode panggilan balik peristiwa pada atau di bawah tingkat objek perangkat. Driver dapat mengambil alih default ini dengan meminta tidak ada sinkronisasi. Untuk informasi selengkapnya, lihat Menentukan Mode Sinkronisasi Panggilan Balik.