다음을 통해 공유


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)

참고 항목

EvtDeviceReleaseHardware

WDFDEVICE_INIT

WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE