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_ACTION que indica si el marco debe intentar volver a cargar los controladores del dispositivo especificado.
Valor devuelto
None
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 irrecuperable de hardware o software, 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 acerca de WdfDeviceSetFailed, consulte Reporting Device Failures.
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 especificados no admiten otros dispositivos, el marco descargará los controladores e intentará volver a cargarlos.
WdfDeviceSetFailed(
device,
WdfDeviceFailedAttemptRestart
);
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfdevice.h (incluir Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |