다음을 통해 공유


WdfDeviceInitRegisterPowerPolicyStateChangeCallback 함수(wdfdevice.h)

[KMDF에만 적용]

참고

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

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

구문

NTSTATUS WdfDeviceInitRegisterPowerPolicyStateChangeCallback(
  [in] PWDFDEVICE_INIT                                       DeviceInit,
  [in] WDF_DEVICE_POWER_POLICY_STATE                         PowerPolicyState,
  [in] PFN_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION EvtDevicePowerPolicyStateChange,
  [in] ULONG                                                 CallbackTypes
);

매개 변수

[in] DeviceInit

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

[in] PowerPolicyState

드라이버가 알림을 요청하는 전원 정책 컴퓨터 상태를 식별하는 WDF_DEVICE_POWER_POLICY_STATE 열거자입니다.

[in] EvtDevicePowerPolicyStateChange

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

[in] CallbackTypes

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

반환 값

WdfDeviceInitRegisterPowerPolicyStateChangeCallback에서 오류가 발생하지 않으면 STATUS_SUCCESS 반환합니다. 추가 반환 값은 다음과 같습니다.

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

설명

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

WdfDeviceInitRegisterPowerPolicyStateChangeCallback에 대한 자세한 내용은 프레임워크의 상태 머신을 참조하세요.

예제

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

status = WdfDeviceInitRegisterPowerPolicyStateChangeCallback(
                                 DeviceInit,
                                 WdfDevStatePwrPolCheckPowerPageable,
                                 PciDrvPowerPolicyStateChangeCallback,
                                 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)