다음을 통해 공유


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호출하는 방법에 대한 자세한 내용은 프레임워크 State Machines를 참조하세요.

예제

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

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), PdoDeviceInit API(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)