Функция WdfDeviceSetFailed (wdfdevice.h)
[Применимо к KMDF и UMDF]
Метод WdfDeviceSetFailed информирует платформу о том, что драйвер столкнулся с аппаратной или программной ошибкой, связанной с указанным устройством.
Синтаксис
void WdfDeviceSetFailed(
[in] WDFDEVICE Device,
[in] WDF_DEVICE_FAILED_ACTION FailedAction
);
Параметры
[in] Device
Дескриптор объекта устройства платформы.
[in] FailedAction
Перечислитель с типом WDF_DEVICE_FAILED_ACTION, который указывает, должна ли платформа пытаться перезагрузить драйверы указанного устройства.
Возвращаемое значение
None
Remarks
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Если драйвер сталкивается с неустранимой ошибкой оборудования или программного обеспечения, он должен вызвать WdfDeviceSetFailed , чтобы система выгрузила драйверы устройства.
Начиная с версии UMDF 2.15 драйвер UMDF может запросить повторное перечисление драйвера шины, вызвав WdfDeviceSetFailed с параметром FailedAction, для параметра FailedAction задано значение WdfDeviceFailedAttemptRestart. Водитель шины должен поддерживать интерфейс GUID_REENUMERATE_SELF_INTERFACE_STANDARD .
Кроме того, драйвер UMDF может задать для параметра FailedAction значение WdfDeviceFailedNoRestart.
Дополнительные сведения о WdfDeviceSetFailed см. в разделе Создание отчетов о сбоях устройств.
Примеры
Следующий пример кода информирует платформу о том, что произошел сбой. Если драйверы указанного устройства не поддерживают другие устройства, платформа выгрузит драйверы и попытается их перезагрузить.
WdfDeviceSetFailed(
device,
WdfDeviceFailedAttemptRestart
);
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfdevice.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |