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)