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 형식의 열거자입니다.

반환 값

없음

설명

드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.

드라이버에서 복구할 수 없는 하드웨어 또는 소프트웨어 오류가 발생하는 경우 시스템에서 디바이스의 드라이버를 언로드할 수 있도록 WdfDeviceSetFailed 를 호출해야 합니다.

UMDF 버전 2.15부터 UMDF 드라이버는 WdfDeviceFailedAttemptRestart로 설정된 FailedAction을 사용하여 WdfDeviceSetFailed를 호출하여 기본 버스 드라이버가 다시 열거하도록 요청할 수 있습니다. 버스 드라이버는 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)