WdfDeviceInitSetReleaseHardwareOrderOnFailure 함수(wdfdevice.h)
[KMDF 및 UMDF에 적용]
WdfDeviceInitSetReleaseHardwareOrderOnFailure 메서드는 프레임워크가 디바이스 오류 직후 드라이버의 EvtDeviceReleaseHardware 콜백 함수를 호출할지 또는 모든 자식 디바이스가 제거될 때까지 대기할지를 지정합니다.
구문
void WdfDeviceInitSetReleaseHardwareOrderOnFailure(
[in] PWDFDEVICE_INIT DeviceInit,
[in] WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure
);
매개 변수
[in] DeviceInit
WDFDEVICE_INIT 구조체에 대한 포인터입니다.
[in] ReleaseHardwareOrderOnFailure
프레임워크 가 드라이버의 EvtDeviceReleaseHardware 콜백 함수를 호출할 때를 지정하는 WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE 형식의 열거자입니다.
반환 값
없음
설명
일반적으로 프레임워크는 드라이버가 열거하는 모든 자식 디바이스에 대해 EvtDeviceReleaseHardware 함수를 호출한 후 드라이버의 EvtDeviceReleaseHardware 콜백 함수를 호출합니다.
그러나 디바이스 전원이 켜지거나 전원이 끊어질 경우 프레임워크는 모든 자식 디바이스에 대해 EvtDeviceReleaseHardware 함수를 호출하기 전에 드라이버의 EvtDeviceReleaseHardware 를 호출할 수 있습니다.
이 기본 동작을 재정의하기 위해 드라이버는 WdfDeviceInitSetReleaseHardwareOrderOnFailure를 호출하여 디바이스 오류 시나리오에서도 프레임워크가 자식 디바이스의 EvtDeviceReleaseHardware 함수를 호출할 때까지 항상 EvtDeviceReleaseHardware 함수를 호출할 때까지 기다려야 한다고 지정할 수 있습니다.
예를 들어 자식 디바이스를 대신하여 하드웨어 액세스를 수행하는 버스 드라이버는 이 기술을 사용하여 프레임워크가 버스 드라이버의 EvtDeviceReleaseHardware 콜백 함수를 호출한 후 자식 디바이스가 하드웨어에 대한 액세스를 요청하지 않도록 할 수 있습니다.
드라이버가 WdfDeviceInitSetReleaseHardwareOrderOnFailure를 호출하는 경우 WdfDeviceCreate를 호출하기 전에 호출해야 합니다. WdfDeviceCreate 호출에 대한 자세한 내용은 프레임워크 디바이스 개체 만들기를 참조하세요.
예제
다음 코드 예제에서는 버스 드라이버가 모든 자식 디바이스가 제거될 때까지 프레임워크가 EvtDeviceReleaseHardware 콜백 함수를 호출할 때까지 대기하도록 요청할 수 있는 방법을 보여줍니다.
WdfDeviceInitSetReleaseHardwareOrderOnFailure(
DeviceInit,
WdfReleaseHardwareOrderOnFailureAfterDescendants
);
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
최소 KMDF 버전 | 1.11 |
최소 UMDF 버전 | 2.0 |
머리글 | wdfdevice.h(Wdf.h 포함) |
라이브러리 | Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF) |
IRQL | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | DriverCreate(kmdf) |