Bagikan melalui


Menggunakan Pengumpulan Perangkat di Driver UMDF

User-Mode Driver Framework (UMDF) Versi 1.11 dan 2.0

Jika driver User-Mode Driver Framework (UMDF) Anda dibangun dengan versi 1.11 atau 2.0 dan berjalan pada Windows 8 atau yang lebih baru, kerangka kerja membuat satu instans Wudfhost yang dapat menghosting beberapa tumpukan perangkat. Teknik ini disebut pengumpulan perangkat. Manfaat utama pengumpulan perangkat adalah pengurangan konsumsi memori di lingkungan dengan beberapa perangkat UMDF.

Jika perangkat yang dikumpulkan gagal, kerangka kerja mengakhiri instans Wudfhost dan mencoba menghidupkan ulang semua perangkat yang sebelumnya ada di kumpulan. Jika perangkat gagal lagi saat dikumpulkan, kerangka kerja membuat proses Wudfhost terpisah untuk perangkat dan mencoba memulai perangkat lagi.

Jika perangkat gagal dalam proses host terpisah, kerangka kerja mencoba untuk memulai ulang hingga lima kali. Kerangka kerja mereset jumlah kesalahan perangkat menjadi satu ketika tiga puluh menit telah berlalu sejak kegagalan terakhir.

Jika sistem di-boot ulang, kerangka kerja akan mempool ulang perangkat kecuali yang gagal saat berjalan dalam proses terpisah.

Untuk menonaktifkan pengumpulan perangkat untuk perangkat tertentu, gunakan direktif UmdfHostProcessSharing di bagian DDInstall khusus WDF dari INF. Untuk informasi tentang UmdfHostProcessSharing, lihat Menentukan Arahan WDF dalam File INF.

Jika driver Anda menggunakan I/O langsung, Anda harus mengatur UmdfHostProcessSharing ke ProcessSharingDisabled. Jika tidak, driver Anda mungkin gagal memulai. Jika WdfDeviceIoBufferedOrDirect dipilih dan perangkat dikumpulkan, kerangka kerja mengubah metode akses buffer menjadi I/O yang di-buffer. Jika WdfDeviceIoBufferedOrDirect dipilih dan perangkat tidak dikumpulkan, kerangka kerja mengubah metode akses buffer untuk mengarahkan I/O.

Untuk memilih metode akses buffer, driver Anda harus memanggil metode IWDFDeviceInitialize2::SetIoTypePreference dari fungsi panggilan balik IDriverEntry::OnDeviceAdd-nya . Untuk informasi tentang metode akses, lihat Mengakses Buffer Data di driver UMDF-Based.

UMDF Versi 1.9 dan yang lebih lama

Jika driver Anda dibangun dengan UMDF versi 1.9 atau yang lebih lama, kerangka kerja membuat instans terpisah dari proses host (Wudfhost) untuk setiap tumpukan perangkat.

Jika perangkat gagal dimulai, kerangka kerja mencoba untuk memulai ulang hingga lima kali. Kerangka kerja mereset jumlah kesalahan perangkat menjadi satu ketika tiga puluh menit telah berlalu sejak kegagalan terakhir.

Di lingkungan yang tidak terkumpul, jika beberapa tumpukan perangkat berbagi driver UMDF yang sama:

Di lingkungan terkumpul, jika beberapa tumpukan perangkat berbagi driver mode pengguna yang sama:

Karena hanya ada satu objek driver dalam konfigurasi terkumpul, driver tidak boleh menyimpan konteks per perangkat apa pun dalam variabel global atau dalam objek yang dibagikan di seluruh perangkat, seperti objek panggilan balik driver. Sebagai gantinya, driver harus menyimpan konteks per perangkat dalam objek yang tidak dibagi antara tumpukan perangkat, seperti objek panggilan balik perangkat driver.