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(status)가 TRUE와 같은 다른 상태 값을 반환해야 합니다. 그렇지 않으면 NT_SUCCESS(status)가 FALSE상태 값을 반환해야 합니다.

이 콜백 함수의 반환 값에 대한 자세한 내용은 디바이스 오류 보고를 참조하세요.

EvtDeviceD0Entry 콜백 함수가 NT_SUCCESS(status)가 FALSE인 상태 값을 반환한 후 프레임워크는 드라이버의 EvtDeviceD0Exit 콜백 함수를 호출하지 않습니다.

설명

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

드라이버가 디바이스에 대한 EvtDeviceD0Entry 콜백 함수를 등록한 경우 프레임워크는 디바이스가 작동(D0) 상태가 될 때마다 함수를 호출합니다. 다음 중 하나가 발생하면 디바이스가 D0 상태가 됩니다.

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

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

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

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

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

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

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

요구 사항

   
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
헤더 wdfdevice.h(Wdf.h 포함)
IRQL PASSIVE_LEVEL(주의 섹션 참조)

참조

EvtDeviceD0Exit