Función WdfDeviceSetFailed (wdfdevice.h)
[Se aplica a KMDF y UMDF]
El método WdfDeviceSetFailed informa al marco de trabajo que el controlador encontró un error de hardware o software asociado a un dispositivo especificado.
Sintaxis
void WdfDeviceSetFailed(
[in] WDFDEVICE Device,
[in] WDF_DEVICE_FAILED_ACTION FailedAction
);
Parámetros
[in] Device
Identificador de un objeto de dispositivo de marco.
[in] FailedAction
Enumerador con tipo WDF_DEVICE_FAILED_ACTIONque indica si el marco debe intentar volver a cargar los controladores del dispositivo especificado.
Valor devuelto
Ninguno
Observaciones
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Si un controlador encuentra un error de hardware o software irrecuperable, debe llamar a WdfDeviceSetFailed para que el sistema pueda descargar los controladores del dispositivo.
A partir de la versión 2.15 de UMDF, un controlador UMDF puede solicitar que el controlador de bus subyacente vuelva a enumerarlo llamando a WdfDeviceSetFailed con FailedAction establecido en WdfDeviceFailedAttemptRestart. El controlador de autobús debe admitir la interfaz GUID_REENUMERATE_SELF_INTERFACE_STANDARD.
Como alternativa, un controlador UMDF puede establecer FailedAction en WdfDeviceFailedNoRestart.
Para obtener más información sobre WdfDeviceSetFailed, consulte Informes de errores de dispositivo.
Ejemplos
En el ejemplo de código siguiente se informa al marco de trabajo que se ha producido un error. Si los controladores del dispositivo especificado no admiten otros dispositivos, el marco descargará los controladores e intentará volver a cargarlos.
WdfDeviceSetFailed(
device,
WdfDeviceFailedAttemptRestart
);
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado de | wdfdevice.h (incluya Wdf.h) |
biblioteca de | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
irQL | <=DISPATCH_LEVEL |
reglas de cumplimiento de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |