Win32 API 日本語リファレンス
ホームDevices.DeviceAndDriverInstallation › CM_NOTIFY_ACTION

CM_NOTIFY_ACTION

列挙型
基底型i4

メンバー 11

名前10進16進説明
CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL00x0この値の場合は、CM_NOTIFY_FILTER 構造体の FilterType メンバーに CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE を設定します。このアクションは、フィルター条件を満たすデバイス インターフェイスが有効になったことを示します。
CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL10x1

この値の場合は、CM_NOTIFY_FILTER 構造体の FilterType メンバーに CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE を設定します。

このアクションは、フィルター条件を満たすデバイス インターフェイスが無効になったことを示します。

CM_NOTIFY_ACTION_DEVICEQUERYREMOVE20x2

この値の場合は、CM_NOTIFY_FILTER 構造体の FilterType メンバーに CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE を設定します。

このアクションは、デバイスの削除がクエリされている (query remove) ことを示します。クエリによる削除を成功させるには、CloseHandle を呼び出して、そのデバイスに対して開いているハンドルをすべて閉じてください。これを行わない場合、開いたままのハンドルによってこのデバイスのクエリ削除は成功しません。詳細については、Registering for Notification of Device Interface Arrival and Device Removal を参照してください。

クエリ削除を拒否するには、ERROR_CANCELLED を返します。ただし、クエリ削除を拒否せず、デバイスに対して開いているハンドルを閉じて削除を許可することをお勧めします。

CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED30x3

この値の場合は、CM_NOTIFY_FILTER 構造体の FilterType メンバーに CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE を設定します。

このアクションは、デバイスのクエリ削除が失敗したことを示します。以前の CM_NOTIFY_ACTION_DEVICEQUERYREMOVE の通知でこのデバイスのハンドルを閉じた場合は、デバイスへの I/O 要求を続行するために、デバイスへの新しいハンドルを開いてください。詳細については、Registering for Notification of Device Interface Arrival and Device Removal を参照してください。

CM_NOTIFY_ACTION_DEVICEREMOVEPENDING40x4

この値の場合は、CM_NOTIFY_FILTER 構造体の FilterType メンバーに CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE を設定します。

デバイスは削除されます。デバイスへのハンドルをまだ開いている場合は、CloseHandle を呼び出してデバイス ハンドルを閉じてください。詳細については、Registering for Notification of Device Interface Arrival and Device Removal を参照してください。システムは、対応する CM_NOTIFY_ACTION_DEVICEQUERYREMOVE メッセージを送信せずに CM_NOTIFY_ACTION_DEVICEREMOVEPENDING 通知を送信する場合があります。そのような場合、アプリケーションとドライバーは、デバイスの喪失から可能な限り復旧する必要があります。

CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE50x5

この値の場合は、CM_NOTIFY_FILTER 構造体の FilterType メンバーに CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE を設定します。

デバイスは削除されました。デバイスへのハンドルをまだ開いている場合は、CloseHandle を呼び出してデバイス ハンドルを閉じてください。詳細については、Registering for Notification of Device Interface Arrival and Device Removal を参照してください。システムは、対応する CM_NOTIFY_ACTION_DEVICEQUERYREMOVE メッセージや CM_NOTIFY_ACTION_DEVICEREMOVEPENDING メッセージを送信せずに CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE 通知を送信する場合があります。そのような場合、アプリケーションとドライバーは、デバイスの喪失から可能な限り復旧する必要があります。

CM_NOTIFY_ACTION_DEVICECUSTOMEVENT60x6この値の場合は、CM_NOTIFY_FILTER 構造体の FilterType メンバーに CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE を設定します。このアクションは、ドライバーで定義されたカスタム イベントが発生したときに送信されます。
CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED70x7この値の場合は、CM_NOTIFY_FILTER 構造体の FilterType メンバーに CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE を設定します。このアクションは、フィルター条件を満たす新しいデバイス インスタンスが列挙されたときに送信されます。
CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED80x8この値の場合は、CM_NOTIFY_FILTER 構造体の FilterType メンバーに CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE を設定します。このアクションは、フィルター条件を満たすデバイス インスタンスが開始されたときに送信されます。
CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED90x9この値の場合は、CM_NOTIFY_FILTER 構造体の FilterType メンバーに CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE を設定します。このアクションは、フィルター条件を満たすデバイス インスタンスが存在しなくなったときに送信されます。
CM_NOTIFY_ACTION_MAX100xA使用しないでください。

公式ドキュメント

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

解説(Remarks)

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

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum CM_NOTIFY_ACTION : int {
    CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0,
    CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL = 1,
    CM_NOTIFY_ACTION_DEVICEQUERYREMOVE = 2,
    CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED = 3,
    CM_NOTIFY_ACTION_DEVICEREMOVEPENDING = 4,
    CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE = 5,
    CM_NOTIFY_ACTION_DEVICECUSTOMEVENT = 6,
    CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED = 7,
    CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED = 8,
    CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED = 9,
    CM_NOTIFY_ACTION_MAX = 10
} CM_NOTIFY_ACTION;
public enum CM_NOTIFY_ACTION : int
{
    CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0,
    CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL = 1,
    CM_NOTIFY_ACTION_DEVICEQUERYREMOVE = 2,
    CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED = 3,
    CM_NOTIFY_ACTION_DEVICEREMOVEPENDING = 4,
    CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE = 5,
    CM_NOTIFY_ACTION_DEVICECUSTOMEVENT = 6,
    CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED = 7,
    CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED = 8,
    CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED = 9,
    CM_NOTIFY_ACTION_MAX = 10,
}
Public Enum CM_NOTIFY_ACTION As Integer
    CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0
    CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL = 1
    CM_NOTIFY_ACTION_DEVICEQUERYREMOVE = 2
    CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED = 3
    CM_NOTIFY_ACTION_DEVICEREMOVEPENDING = 4
    CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE = 5
    CM_NOTIFY_ACTION_DEVICECUSTOMEVENT = 6
    CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED = 7
    CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED = 8
    CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED = 9
    CM_NOTIFY_ACTION_MAX = 10
End Enum
import enum

class CM_NOTIFY_ACTION(enum.IntEnum):
    CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0
    CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL = 1
    CM_NOTIFY_ACTION_DEVICEQUERYREMOVE = 2
    CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED = 3
    CM_NOTIFY_ACTION_DEVICEREMOVEPENDING = 4
    CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE = 5
    CM_NOTIFY_ACTION_DEVICECUSTOMEVENT = 6
    CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED = 7
    CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED = 8
    CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED = 9
    CM_NOTIFY_ACTION_MAX = 10
// CM_NOTIFY_ACTION
pub const CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL: i32 = 0;
pub const CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL: i32 = 1;
pub const CM_NOTIFY_ACTION_DEVICEQUERYREMOVE: i32 = 2;
pub const CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED: i32 = 3;
pub const CM_NOTIFY_ACTION_DEVICEREMOVEPENDING: i32 = 4;
pub const CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE: i32 = 5;
pub const CM_NOTIFY_ACTION_DEVICECUSTOMEVENT: i32 = 6;
pub const CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED: i32 = 7;
pub const CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED: i32 = 8;
pub const CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED: i32 = 9;
pub const CM_NOTIFY_ACTION_MAX: i32 = 10;
// CM_NOTIFY_ACTION
const (
	CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL int32 = 0
	CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL int32 = 1
	CM_NOTIFY_ACTION_DEVICEQUERYREMOVE int32 = 2
	CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED int32 = 3
	CM_NOTIFY_ACTION_DEVICEREMOVEPENDING int32 = 4
	CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE int32 = 5
	CM_NOTIFY_ACTION_DEVICECUSTOMEVENT int32 = 6
	CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED int32 = 7
	CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED int32 = 8
	CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED int32 = 9
	CM_NOTIFY_ACTION_MAX int32 = 10
)
const
  CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0;
  CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL = 1;
  CM_NOTIFY_ACTION_DEVICEQUERYREMOVE = 2;
  CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED = 3;
  CM_NOTIFY_ACTION_DEVICEREMOVEPENDING = 4;
  CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE = 5;
  CM_NOTIFY_ACTION_DEVICECUSTOMEVENT = 6;
  CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED = 7;
  CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED = 8;
  CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED = 9;
  CM_NOTIFY_ACTION_MAX = 10;
// CM_NOTIFY_ACTION
pub const CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL: i32 = 0;
pub const CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL: i32 = 1;
pub const CM_NOTIFY_ACTION_DEVICEQUERYREMOVE: i32 = 2;
pub const CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED: i32 = 3;
pub const CM_NOTIFY_ACTION_DEVICEREMOVEPENDING: i32 = 4;
pub const CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE: i32 = 5;
pub const CM_NOTIFY_ACTION_DEVICECUSTOMEVENT: i32 = 6;
pub const CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED: i32 = 7;
pub const CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED: i32 = 8;
pub const CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED: i32 = 9;
pub const CM_NOTIFY_ACTION_MAX: i32 = 10;
const
  CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL* = 0
  CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL* = 1
  CM_NOTIFY_ACTION_DEVICEQUERYREMOVE* = 2
  CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED* = 3
  CM_NOTIFY_ACTION_DEVICEREMOVEPENDING* = 4
  CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE* = 5
  CM_NOTIFY_ACTION_DEVICECUSTOMEVENT* = 6
  CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED* = 7
  CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED* = 8
  CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED* = 9
  CM_NOTIFY_ACTION_MAX* = 10
enum CM_NOTIFY_ACTION : int {
    CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0,
    CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL = 1,
    CM_NOTIFY_ACTION_DEVICEQUERYREMOVE = 2,
    CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED = 3,
    CM_NOTIFY_ACTION_DEVICEREMOVEPENDING = 4,
    CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE = 5,
    CM_NOTIFY_ACTION_DEVICECUSTOMEVENT = 6,
    CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED = 7,
    CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED = 8,
    CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED = 9,
    CM_NOTIFY_ACTION_MAX = 10,
}
#define global CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL   0x0
#define global CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL   0x1
#define global CM_NOTIFY_ACTION_DEVICEQUERYREMOVE        0x2
#define global CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED  0x3
#define global CM_NOTIFY_ACTION_DEVICEREMOVEPENDING      0x4
#define global CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE     0x5
#define global CM_NOTIFY_ACTION_DEVICECUSTOMEVENT        0x6
#define global CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED 0x7
#define global CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED    0x8
#define global CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED    0x9
#define global CM_NOTIFY_ACTION_MAX                      0xA