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。 其他傳回值包括:

傳回碼 Description
STATUS_INVALID_PARAMETER
偵測到無效的參數。
STATUS_INSUFFICIENT_RESOURCES
記憶體不足,無法完成作業。

備註

如果您的驅動程式呼叫 WdfDeviceInitRegisterPnpStateChangeCallback,它必須先這麼做,才能呼叫 WdfDeviceCreate

如需 WdfDeviceInitRegisterPnpStateChangeCallback 的詳細資訊,請參閱 Framework 中的狀態機器

範例

下列程式代碼範例會註冊當裝置 隨插即用 狀態機器變更狀態時,架構會呼叫的事件回呼函式。

status = WdfDeviceInitRegisterPnpStateChangeCallback(
                                                     DeviceInit,
                                                     WdfDevStatePnpEjectFailed,
                                                     MyDrvPnPStateChangeCallback,
                                                     StateNotificationAllStates
                                                     );

規格需求

需求
目標平台 Universal
最小 KMDF 版本 1.0
標頭 wdfdevice.h (包含 Wdf.h)
程式庫 Wdf01000.sys (請參閱 Framework Library Versioning.)
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