EVT_WDF_DEVICE_RELEASE_HARDWARE 콜백 함수(wdfdevice.h)

[KMDF 및 UMDF에 적용]

드라이버의 EvtDeviceReleaseHardware 이벤트 콜백 함수는 디바이스에 더 이상 액세스할 수 없을 때 필요한 작업을 수행합니다.

구문

EVT_WDF_DEVICE_RELEASE_HARDWARE EvtWdfDeviceReleaseHardware;

NTSTATUS EvtWdfDeviceReleaseHardware(
  [in] WDFDEVICE Device,
  [in] WDFCMRESLIST ResourcesTranslated
)
{...}

매개 변수

[in] Device

프레임워크 디바이스 개체에 대한 핸들입니다.

[in] ResourcesTranslated

플러그 앤 플레이 관리자가 디바이스에 할당한 변환된 하드웨어 리소스를 식별하는 리소스 목록 개체에 대한 핸들입니다.

반환 값

EvtDeviceReleaseHardware 콜백 함수에 오류가 발생하지 않으면 STATUS_SUCCESS 또는 NT_SUCCESS(상태)이 TRUE인 다른 상태 값을 반환해야 합니다. 그렇지 않으면 NT_SUCCESS(상태)이 FALSE와 같은 상태 값을 반환해야 합니다. STATUS_NOT_SUPPORTED 반환하지 마세요.

설명

EvtDeviceReleaseHardware 콜백 함수를 등록하려면 드라이버가 WdfDeviceInitSetPnpPowerEventCallbacks를 호출해야 합니다.

드라이버가 EvtDeviceReleaseHardware 콜백 함수를 등록한 경우 프레임워크는 다음 전환 중에 호출합니다.

  • 리소스 리밸런싱
  • 순서대로 제거
  • 깜짝 제거

프레임워크는 프레임워크가 디바이스에 대한 I/O 요청 전송을 중지하고, 디바이스에 할당된 인터럽트가 비활성화되고 연결이 끊어졌으며, 디바이스가 꺼진 후 EvtDeviceReleaseHardware 콜백 함수를 호출합니다.

프레임워크가 EvtDeviceReleaseHardware를 호출하는 경우 디바이스에 대한 PDO는 여전히 존재하며 전원이 꺼진 상태에서 사용할 수 있는 디바이스 정보(예: PCI 구성 상태)에 대해 쿼리할 수 있습니다.

또한 프레임워크가 EvtDeviceReleaseHardware 에 제공하는 변환된 하드웨어 리소스는 여전히 디바이스에 할당됩니다. 이 콜백 함수의 주요 목적은 이러한 리소스를 해제하는 것이며, 특히 드라이버의 EvtDevicePrepareHardware 콜백 함수가 매핑한 메모리 리소스의 매핑을 해제하는 것입니다. 또한 드라이버는 이 콜백을 사용하여 전원이 켜진 상태에서 필요할 수 있는 다른 드라이버 또는 디바이스 관리 작업을 수행할 수도 있습니다. 일반적으로 다른 모든 하드웨어 종료 작업은 드라이버의 EvtDeviceD0Exit 콜백 함수에서 수행되어야 합니다.

EvtDevicePrepareHardware가 오류 코드를 반환하더라도 드라이버의 EvtDevicePrepareHardware 콜백 함수가 호출된 경우 프레임워크는 항상 드라이버의 EvtDeviceReleaseHardware 콜백 함수를 호출합니다.

자식 디바이스가 있는 디바이스의 드라이버는 프레임워크가 EvtDriverDeviceAdd 콜백 함수 내에서 WdfDeviceInitSetReleaseHardwareOrderOnFailure 를 호출하여 부모 디바이스 및 해당 자식에 대해 EvtDeviceReleaseHardware 콜백 함수를 호출하는 순서를 제어할 수 있습니다.

프레임워크가 이 콜백 함수를 호출하는 경우에 대한 자세한 내용은 PnP 및 전원 관리 시나리오를 참조하세요.

하드웨어 리소스에 대한 자세한 내용은 Framework-Based 드라이버용 하드웨어 리소스를 참조하세요.

이 콜백 함수를 제공하는 드라이버에 대한 자세한 내용은 함수 드라이버에서 PnP 및 전원 관리 지원을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
머리글 wdfdevice.h(Wdf.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

EvtDevicePrepareHardware