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 상태가 됩니다.

  • 디바이스가 열거됩니다(디바이스가 연결되었거나 시스템이 다시 부팅되었기 때문).
  • 시스템 및 모든 디바이스는 저전력 상태에서 작업 상태로 돌아갑니다.
  • 디바이스가 유휴 상태이기 때문에(디바이스가 저전력 유휴 상태를 지원하는 경우) 저전력 상태로 전환된 후 디바이스가 작동 상태로 돌아갑니다.
  • 플러그 앤 플레이 관리자는 시스템의 디바이스 간에 시스템의 하드웨어 리소스를 재배포했습니다.
프레임워크는 디바이스가 작동(D0) 상태가 된 직후 에 EvtDeviceD0Entry 콜백 함수를 호출하고 드라이버에서 사용할 수 있지만 디바이스의 인터럽트를 사용하도록 설정하기 전에 호출합니다. PreviousState 매개 변수는 디바이스가 D0 상태가 되기 전에 있었던 디바이스 전원 상태를 식별합니다. 프레임워크가 EvtDeviceD0Entry를 처음 호출하면 WdfPowerDeviceD3FinalPreviousState 값을 제공합니다.

콜백 함수는 펌웨어 로드 또는 디바이스가 저전력 상태일 때 비활성화된 디바이스 기능 사용과 같이 디바이스가 완전히 작동하도록 하는 데 필요한 모든 작업을 수행해야 합니다.

EvtDeviceD0Entry 콜백 함수가 NT_SUCCESS(상태)이 FALSE와 같은 상태 값을 반환하는 경우 프레임워크는 다음을 수행합니다.

  • 디바이스가 처음으로 시작되는 경우 프레임워크는 디바이스에 대한 순서대로 제거 시퀀스를 시작합니다.
  • 디바이스가 저전력 상태에서 작동 상태로 돌아오는 경우 프레임워크는 디바이스에 대한 깜짝 제거 시퀀스를 시작합니다.
프레임워크는 이러한 경우 중 하나에서 드라이버의 EvtDeviceD0Exit 콜백 함수를 호출하지 않습니다.

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

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

EvtDeviceD0Entry 콜백 함수는 IRQL = PASSIVE_LEVEL 호출됩니다. 이 콜백 함수를 페이지스할 수 있도록 해서는 안 됩니다.

요구 사항

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

추가 정보

EvtDeviceD0Exit