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的详细信息,请参阅 Framework 中的状态机。

例子

下面的代码示例注册当设备的即插即用状态机更改状态时框架将调用的事件回调函数。

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