WdfDeviceInitRegisterPnpStateChangeCallback 함수(wdfdevice.h)

[KMDF에만 적용]

참고

이 메서드는 Microsoft 내부용으로만 사용됩니다.

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

구문

NTSTATUS WdfDeviceInitRegisterPnpStateChangeCallback(
  [in] PWDFDEVICE_INIT                              DeviceInit,
  [in] WDF_DEVICE_PNP_STATE                         PnpState,
  [in] PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION EvtDevicePnpStateChange,
  [in] ULONG                                        CallbackTypes
);

매개 변수

[in] DeviceInit

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

[in] PnpState

드라이버가 알림을 요청하는 플러그 앤 플레이 컴퓨터 상태를 식별하는 WDF_DEVICE_PNP_STATE 열거자입니다.

[in] EvtDevicePnpStateChange

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

[in] CallbackTypes

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

반환 값

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

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

설명

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

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

예제

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

status = WdfDeviceInitRegisterPnpStateChangeCallback(
                                                     DeviceInit,
                                                     WdfDevStatePnpEjectFailed,
                                                     MyDrvPnPStateChangeCallback,
                                                     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)

추가 정보

EvtDevicePnpStateChange

WDFDEVICE_INIT

WDF_DEVICE_PNP_STATE

WDF_STATE_NOTIFICATION_TYPE