Cihaz Hatalarını Raporlama

Cihaz hatalarını bildirmenin üç yolu vardır:

Yukarıdaki yöntemlerin her biri, çerçevenin cihazı etkili bir şekilde kaldırmasını sağlar. Cihazın sürücüleri sistemdeki diğer cihazları desteklemiyorsa G/Ç yöneticisi sürücüleri kaldırır.

Bir sürücünün cihaz nesnesi geri çağırma işlevi, NT_SUCCESS(durum) değerinin FALSE eşit olduğu bir değer döndürürse, çerçeve PnP yöneticisine bildirimde bulunur ve ardından veri yolu sürücüsünün cihazlarını yeniden numaralandırmasını isteyerek cihazı yeniden başlatmayı dener. Sürücünüz boşaltıldıysa yeniden yüklenir.

Sürücünüz WdfDeviceSetFailedçağırırsa, cihazın yeniden başlatılıp başlatılmayacağını belirleyen bir giriş bağımsız değişkeni sağlar. Bağımsız değişken değerleri WdfDeviceFailedAttemptRestart ve WdfDeviceFailedNoRestart'dür.

UMDF UMDF 2.15'den önce bir UMDF sürücüsünün bu değeri WdfDeviceFailedNoRestart olarak ayarlaması gerekir. UMDF 2.15 sürümünden itibaren, bir UMDF sürücüsü, WdfDeviceSetFailed fonksiyonunu FailedActionWdfDeviceFailedAttemptRestartolarak ayarlayarak, altındaki veri yolu sürücüsünden kendisini yeniden numaralandırmasını isteyebilir. Daha fazla bilgi için bkz. WdfDeviceSetFailed.

Bu bağımsız değişken değerleri hakkında daha fazla bilgi için bkz. WDF_DEVICE_FAILED_ACTION. Sürücünün cihaz nesne geri çağırma işlevi, NT_SUCCESS(durum) değeri false eşit olan bir değerle döndürmeden önce, geri çağırma işlevi WdfDeviceFailedNoRestartgiriş bağımsız değişkeniyle WdfDeviceSetFailed çağırarak yeniden başlatmaları engelleyebilir. Aksi takdirde, bu geri çağırma işlevlerinin WdfDeviceSetFailedçağırması gerekmez.

Kısa bir süre içinde birkaç ardışık yeniden başlatma girişimi başarısız olursa (yeniden başlatılan sürücü yeniden hata bildirdiğinden), çerçeve cihazı yeniden başlatmayı denemeyi durdurur.

Veri yolu sürücüsünün EvtDeviceD0Entry işlevi, NT_SUCCESS(durum) değerinin FALSE eşit olduğu bir değer döndürürse, çerçeve yine de veri yolu sürücüsünün alt cihazlarıyla ilişkili sürücülerin EvtDeviceD0Entry işlevlerini çağırabilir.