다음을 통해 공유


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

예제

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

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

참고 항목

EvtDevicePnpStateChange

WDFDEVICE_INIT

WDF_DEVICE_PNP_STATE

WDF_STATE_NOTIFICATION_TYPE