Compartir a través de


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)