WdfDeviceInitRegisterPowerStateChangeCallback 함수(wdfdevice.h)

[KMDF에만 적용]

참고

이 방법은 Microsoft 내부 용도로만 사용됩니다.

WdfDeviceInitRegisterPowerStateChangeCallback 메서드는 디바이스의 전원 상태 컴퓨터가 상태를 변경할 때 프레임워크가 호출하는 드라이버 제공 이벤트 콜백 함수를 등록합니다.

구문

NTSTATUS WdfDeviceInitRegisterPowerStateChangeCallback(
  [in] PWDFDEVICE_INIT                                DeviceInit,
  [in] WDF_DEVICE_POWER_STATE                         PowerState,
  [in] PFN_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION EvtDevicePowerStateChange,
  [in] ULONG                                          CallbackTypes
);

매개 변수

[in] DeviceInit

WDFDEVICE_INIT 구조체에 대한 호출자 제공 포인터입니다.

[in] PowerState

드라이버가 알림을 요청하는 전원 머신 상태를 식별하는 WDF_DEVICE_POWER_STATE 열거자입니다.

[in] EvtDevicePowerStateChange

드라이버의 EvtDevicePowerStateChange 이벤트 콜백 함수에 대한 호출자 제공 포인터입니다.

[in] CallbackTypes

WDF_STATE_NOTIFICATION_TYPE 형식의 열거자의 ORed 조합입니다.

반환 값

작업이 성공하면 WdfDeviceInitRegisterPowerStateChangeCallback 은 STATUS_SUCCESS 반환합니다. 추가 반환 값은 다음과 같습니다.

반환 코드 설명
STATUS_INVALID_PARAMETER
잘못된 매개 변수가 감지되었습니다.
STATUS_INSUFFICIENT_RESOURCES
메모리가 부족하여 작업을 완료할 수 없습니다.

설명

드라이버가 WdfDeviceInitRegisterPowerStateChangeCallback을 호출하는 경우 WdfDeviceCreate를 호출하기 전에 호출해야 합니다.

WdfDeviceCreate를 호출하는 방법에 대한 자세한 내용은 프레임워크의 상태 머신을 참조하세요.

예제

다음 코드 예제에서는 디바이스의 전원 상태 컴퓨터가 상태를 변경할 때 프레임워크에서 호출할 이벤트 콜백 함수를 등록합니다.

status = WdfDeviceInitRegisterPowerStateChangeCallback(
                                     DeviceInit,
                                     WdfDevStatePowerD0StartingConnectInterrupt,
                                     PciDrvPowerStateChangeCallback,
                                     StateNotificationAllStates
                                     );

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
머리글 wdfdevice.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)