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) |