Bagikan melalui


Melaporkan Kegagalan Perangkat

Ada tiga cara untuk melaporkan kegagalan perangkat:

Masing-masing metode di atas menghasilkan kerangka kerja yang secara efektif menghapus perangkat. Jika driver perangkat tidak mendukung perangkat lain pada sistem, manajer I/O akan membongkar driver.

Jika fungsi panggilan balik objek perangkat driver mengembalikan nilai di mana NT_SUCCESS(status) sama dengan FALSE, framework akan memberi tahu manajer PnP, yang kemudian mencoba menghidupkan ulang perangkat dengan meminta driver bus untuk mendaftarkan ulang perangkatnya. Driver Anda akan dimuat ulang, jika sebelumnya tidak dimuat.

Jika driver Anda memanggil WdfDeviceSetFailed, driver tersebut menyediakan argumen input yang menentukan apakah perangkat akan dimulai ulang. Nilai argumen adalah WdfDeviceFailedAttemptRestart dan WdfDeviceFailedNoRestart.

UMDF Sebelum UMDF 2.15, driver UMDF harus mengatur nilai ini ke WdfDeviceFailedNoRestart. Mulai dari UMDF versi 2.15, driver UMDF dapat meminta agar driver bus yang mendasar melakukan enumerasi ulang dengan memanggil WdfDeviceSetFailed dengan FailedAction diatur ke WdfDeviceFailedAttemptRestart. Untuk informasi selengkapnya, lihat WdfDeviceSetFailed.

Untuk informasi selengkapnya tentang nilai argumen ini, lihat WDF_DEVICE_FAILED_ACTION. Sebelum fungsi panggilan balik objek perangkat driver kembali dengan nilai yang membuat NT_SUCCESS(status) sama dengan FALSE, fungsi panggilan balik dapat mencegah perangkat melakukan restart dengan memanggil WdfDeviceSetFailed dengan argumen input WdfDeviceFailedNoRestart. Jika tidak, fungsi panggilan balik ini tidak perlu memanggil WdfDeviceSetFailed.

Jika, dalam waktu singkat, beberapa upaya pengaktifan ulang berturut-turut gagal (karena driver yang diaktifkan ulang kembali melaporkan kesalahan), sistem berhenti berusaha mengaktifkan ulang perangkat.

Jika fungsi EvtDeviceD0Entry dari driver bus mengembalikan nilai yang membuat NT_SUCCESS(status) menjadi FALSE, kerangka kerja mungkin masih akan memanggil fungsi EvtDeviceD0Entry dari driver yang terkait dengan perangkat anak dari driver bus tersebut.