Mulai menggunakan UMDF

Bagian ini menjelaskan User-Mode Driver Framework (UMDF) dan merinci perbedaan antara UMDF versi 1 dan 2. Ini juga menyediakan informasi arsitektur tingkat tinggi tentang UMDF. Gunakan bagian ini untuk menentukan apakah driver UMDF adalah pilihan yang tepat untuk kebutuhan Anda, dan untuk memutuskan versi UMDF mana yang akan digunakan.

Windows Driver Frameworks (WDF) berisi UMDF, kerangka kerja untuk pembuatan driver mode pengguna. Seperti Kernel-Mode Driver Framework (KMDF), UMDF menyediakan lapisan abstraksi dari WDM, menangani banyak fungsionalitas Plug and Play (PnP) dan manajemen daya, dan memungkinkan driver untuk ikut serta dalam fungsionalitas dan penanganan peristiwa tertentu.

Dalam Windows 8.1 dan seterusnya, ada dua versi utama UMDF, versi 1 dan 2. UMDF versi 1.11 (satu titik sebelas) adalah versi terbaru UMDF versi 1, dan merupakan versi akhir sebelum munculnya UMDF 2. Untuk tabel yang memperlihatkan info versi lengkap dan relevansi sistem operasi, lihat Riwayat Versi UMDF.

Menulis driver menggunakan UMDF versi 1 memerlukan penggunaan model pemrograman COM untuk menulis kode C++. Sementara UMDF versi 2 didasarkan pada model pemrograman driver konseptual yang sama dengan KMDF, UMDF 1 mengimplementasikan model dengan komponen yang berbeda, antarmuka driver perangkat (DDI), dan struktur data. 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 dan Windows 11 yang lebih baru.

Sebaliknya, mulai dari UMDF versi 2, Anda dapat menulis driver UMDF dalam bahasa pemrograman C yang memanggil banyak metode yang tersedia untuk driver KMDF. Semua antarmuka yang dibagikan antara UMDF versi 2 dan KMDF memiliki nama, parameter, dan definisi struktur yang sama. Jika driver Anda hanya menggunakan fungsionalitas bersama, atau menggunakan makro kondisional seputar panggilan yang hanya didukung dalam satu kerangka kerja, Anda dapat menulis satu driver yang dapat Anda kompilasi dengan UMDF atau KMDF. Untuk informasi selengkapnya, lihat Cara menghasilkan driver UMDF dari driver KMDF.

Meskipun ada kesamaan yang signifikan antara UMDF 2 dan KMDF, masih ada sejumlah kecil fungsionalitas yang hanya tersedia dalam satu kerangka kerja atau yang lain. Untuk detailnya, lihat Membandingkan Fungsionalitas UMDF 2 dengan KMDF. Untuk daftar semua panggilan balik dan metode UMDF 2 dan KMDF dan kerangka kerja mana yang berlaku, lihat Ringkasan Panggilan Balik dan Metode WDF. Dalam beberapa kasus, anggota struktur atau parameter metode hanya berlaku untuk satu kerangka kerja atau yang lain. Dokumentasi menjelaskan perbedaan ini pada halaman referensi yang sesuai.