EVT_WDF_DEVICE_D0_ENTRY 콜백 함수(wdfdevice.h)
[KMDF 및 UMDF에 적용]
드라이버의 EvtDeviceD0Entry 이벤트 콜백 함수는 드라이버의 디바이스가 D0 전원 상태에 들어갈 때 필요한 작업을 수행합니다.
구문
EVT_WDF_DEVICE_D0_ENTRY EvtWdfDeviceD0Entry;
NTSTATUS EvtWdfDeviceD0Entry(
[in] WDFDEVICE Device,
[in] WDF_POWER_DEVICE_STATE PreviousState
)
{...}
매개 변수
[in] Device
프레임워크 디바이스 개체에 대한 핸들입니다.
[in] PreviousState
이전 디바이스 전원 상태를 식별하는 WDF_POWER_DEVICE_STATE 형식의 열거자입니다.
반환 값
EvtDeviceD0Entry 콜백 함수에 오류가 발생하지 않으면 STATUS_SUCCESS 또는 NT_SUCCESS(상태)가 TRUE인 다른 상태 값을 반환해야 합니다. 그렇지 않으면 NT_SUCCESS(상태)이 FALSE와 같은 상태 값을 반환해야 합니다.
이 콜백 함수의 반환 값에 대한 자세한 내용은 보고 디바이스 오류를 참조하세요.
프레임워크는 EvtDeviceD0Entry 콜백 함수가 NT_SUCCESS(상태)가 FALSE와 같은 상태 값을 반환한 후 드라이버의 EvtDeviceD0Exit 콜백 함수를 호출하지 않습니다.
설명
디바이스에 EvtDeviceD0Entry 콜백 함수를 등록하려면 드라이버가 WdfDeviceInitSetPnpPowerEventCallbacks를 호출해야 합니다.
드라이버가 디바이스에 대한 EvtDeviceD0Entry 콜백 함수를 등록한 경우 프레임워크는 디바이스가 작동(D0) 상태가 될 때마다 함수를 호출합니다. 다음 중 하나가 발생하면 디바이스가 D0 상태가 됩니다.
- 디바이스가 열거됩니다(디바이스가 연결되었거나 시스템이 다시 부팅되었기 때문).
- 시스템 및 모든 디바이스는 저전력 상태에서 작업 상태로 돌아갑니다.
- 디바이스가 유휴 상태이기 때문에(디바이스가 저전력 유휴 상태를 지원하는 경우) 저전력 상태로 전환된 후 디바이스가 작동 상태로 돌아갑니다.
- 플러그 앤 플레이 관리자는 시스템의 디바이스 간에 시스템의 하드웨어 리소스를 재배포했습니다.
콜백 함수는 펌웨어 로드 또는 디바이스가 저전력 상태일 때 비활성화된 디바이스 기능 사용과 같이 디바이스가 완전히 작동하도록 하는 데 필요한 모든 작업을 수행해야 합니다.
EvtDeviceD0Entry 콜백 함수가 NT_SUCCESS(상태)이 FALSE와 같은 상태 값을 반환하는 경우 프레임워크는 다음을 수행합니다.
- 디바이스가 처음으로 시작되는 경우 프레임워크는 디바이스에 대한 순서대로 제거 시퀀스를 시작합니다.
- 디바이스가 저전력 상태에서 작동 상태로 돌아오는 경우 프레임워크는 디바이스에 대한 깜짝 제거 시퀀스를 시작합니다.
프레임워크가 EvtDeviceD0Entry 콜백 함수를 호출하는 경우에 대한 자세한 내용은 PnP 및 전원 관리 시나리오를 참조하세요.
이 콜백 함수를 제공하는 드라이버에 대한 자세한 내용은 함수 드라이버에서 PnP 및 전원 관리 지원을 참조하세요.
EvtDeviceD0Entry 콜백 함수는 IRQL = PASSIVE_LEVEL 호출됩니다. 이 콜백 함수를 페이지스할 수 있도록 해서는 안 됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
최소 KMDF 버전 | 1.0 |
최소 UMDF 버전 | 2.0 |
머리글 | wdfdevice.h(Wdf.h 포함) |
IRQL | PASSIVE_LEVEL(설명 섹션 참조) |