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
Header wdfdevice.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
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