次の方法で共有


CM_NOTIFY_ACTION列挙 (cfgmgr32.h)

この列挙は、プラグ アンド プレイデバイス イベントの種類を識別します。

構文

typedef enum _CM_NOTIFY_ACTION {
  CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0,
  CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL,
  CM_NOTIFY_ACTION_DEVICEQUERYREMOVE,
  CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED,
  CM_NOTIFY_ACTION_DEVICEREMOVEPENDING,
  CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE,
  CM_NOTIFY_ACTION_DEVICECUSTOMEVENT,
  CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED,
  CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED,
  CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED,
  CM_NOTIFY_ACTION_MAX
} CM_NOTIFY_ACTION, *PCM_NOTIFY_ACTION;

定数

 
CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL
値: 0
この値に対して、CM_NOTIFY_FILTER構造体の FilterType メンバーを設定します
CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACEします。 このアクションは、フィルター条件を満たすデバイス インターフェイスが有効になっていることを示します。
CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL
この値に対して、CM_NOTIFY_FILTER構造体の FilterType メンバーを設定します
CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACEします。

このアクションは、フィルター条件を満たすデバイス インターフェイスが無効になっていることを示します。
CM_NOTIFY_ACTION_DEVICEQUERYREMOVE
この値に対して、CM_NOTIFY_FILTER構造体の FilterType メンバーを設定します
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLEします。

このアクションは、デバイスがクエリを削除していることを示します。 クエリの削除が成功できるようにするには、 CloseHandle を呼び出して、デバイスに対して開いているハンドルをすべて閉じます。 これを行わないと、開いているハンドルによって、このデバイスのクエリが正常に削除されなくなります。 詳細については、「 デバイス インターフェイスの到着とデバイスの削除の通知の登録 」を参照してください。

クエリの削除を拒否するには、ERROR_CANCELLEDを返します。 ただし、デバイスに対して開いているハンドルを閉じて、クエリの削除を拒否し、実行を許可しないことをお勧めします。
CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED
この値に対して、CM_NOTIFY_FILTER構造体の FilterType メンバーを設定します
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLEします。

このアクションは、デバイスのクエリ削除が失敗したことを示します。 CM_NOTIFY_ACTION_DEVICEQUERYREMOVEの 前の通知中にこのデバイスへのハンドルを閉じた場合は、デバイスへの新しいハンドルを開いて、I/O 要求の送信を続行します。 詳細については、「 デバイス インターフェイスの到着とデバイスの削除の通知の登録 」を参照してください。
CM_NOTIFY_ACTION_DEVICEREMOVEPENDING
この値に対して、CM_NOTIFY_FILTER構造体の FilterType メンバーを設定します
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLEします。

デバイスが削除されます。 デバイスに対して開いているハンドルがある場合は、 CloseHandle を呼び出してデバイス ハンドルを閉じます。 詳細については、「 デバイス インターフェイスの到着とデバイスの削除の通知の登録 」を参照してください。 システムは、対応する CM_NOTIFY_ACTION_DEVICEQUERYREMOVE メッセージを送信せずに CM_NOTIFY_ACTION_DEVICEREMOVEPENDING 通知を送信できます。 このような場合、アプリケーションとドライバーは、可能な限りデバイスの損失から回復する必要があります。
CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE
この値に対して、CM_NOTIFY_FILTER構造体の FilterType メンバーを設定します
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLEします。

デバイスは削除されました。 デバイスに対して開いているハンドルがある場合は、 CloseHandle を呼び出してデバイス ハンドルを閉じます。 詳細については、「 デバイス インターフェイスの到着とデバイスの削除の通知の登録 」を参照してください。 システムは、対応する CM_NOTIFY_ACTION_DEVICEQUERYREMOVEまたはCM_NOTIFY_ACTION_DEVICEREMOVEPENDING メッセージを送信せずに CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE 通知 送信できます。 このような場合、アプリケーションとドライバーは、可能な限りデバイスの損失から回復する必要があります。
CM_NOTIFY_ACTION_DEVICECUSTOMEVENT
この値に対して、CM_NOTIFY_FILTER構造体の FilterType メンバーを設定します
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLEします。 このアクションは、ドライバー定義のカスタム イベントが発生したときに送信されます。
CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED
この値に対して、CM_NOTIFY_FILTER構造体の FilterType メンバーを設定します
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCEします。 このアクションは、フィルター条件を満たす新しいデバイス インスタンスが列挙されたときに送信されます。
CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED
この値に対して、CM_NOTIFY_FILTER構造体の FilterType メンバーを設定します
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCEします。 このアクションは、フィルター条件を満たすデバイス インスタンスが開始されると送信されます。
CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED
この値に対して、CM_NOTIFY_FILTER構造体の FilterType メンバーを設定します
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCEします。 このアクションは、フィルター条件を満たすデバイス インスタンスが存在しなくなった場合に送信されます。
CM_NOTIFY_ACTION_MAX
使用しないでください。

注釈

ドライバーが CM_Register_Notification 関数を呼び出すとき、 pCallback パラメーターには、指定した PnP イベントが発生したときに呼び出されるルーチンへのポインターが含まれます。 コールバック ルーチンの Action パラメーターは、 CM_NOTIFY_ACTION 列挙の値です。

要件

要件
Header cfgmgr32.h

こちらもご覧ください

CM_NOTIFY_FILTER

CM_Register_Notification