CM_NOTIFY_FILTER構造体 (cfgmgr32.h)
デバイス通知フィルターの構造
構文
typedef struct _CM_NOTIFY_FILTER {
DWORD cbSize;
DWORD Flags;
CM_NOTIFY_FILTER_TYPE FilterType;
DWORD Reserved;
union {
struct {
GUID ClassGuid;
} DeviceInterface;
struct {
HANDLE hTarget;
} DeviceHandle;
struct {
WCHAR InstanceId[MAX_DEVICE_ID_LEN];
} DeviceInstance;
} u;
} CM_NOTIFY_FILTER, *PCM_NOTIFY_FILTER;
メンバー
cbSize
構造体のサイズ。
Flags
次のフラグの 0 個以上の組み合わせ。
CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES
登録して、すべてのデバイス インターフェイス クラスの PnP イベントの通知を受信します。 pFilter-u.DeviceInterface.ClassGuid> のメモリは 0 である必要があります。 このフラグは、CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCESと共に使用しないでください。 このフラグは、pFilter-FilterType> がCM_NOTIFY_FILTER_TYPE_DEVICEINTERFACEされている場合にのみ有効です。
CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCES
登録して、すべてのデバイスの PnP イベントの通知を受信します。 pFilter-u.DeviceInstance.InstanceId> は空の文字列である必要があります。 このフラグは、CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSESと共に使用しないでください。 このフラグは、pFilter-FilterType> がCM_NOTIFY_FILTER_TYPE_DEVICEINSTANCEされている場合にのみ有効です。
FilterType
次のいずれかの値を指定する必要があります。
CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE
デバイス インターフェイス イベントの通知に登録します。 通知を受信するには、pFilter-u.DeviceInterface.ClassGuid> にデバイス インターフェイス クラスの GUID を入力する必要があります。
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE
デバイス ハンドル イベントの通知に登録します。 pFilter-u.DeviceHandle.hTarget> には、通知を受信するデバイスへのハンドルを入力する必要があります。 このハンドルは、 CM_Register_Notification 呼び出しの間、デバイスに対する有効なハンドルのままである必要があります。 ただし、CM_Register_Notificationが返された後、登録が通知を受信する機能に影響を与えることなく、ハンドルを閉じることができます。
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE
デバイス インスタンス イベントの通知に登録します。 pFilter-u.DeviceInstance.InstanceId> には、通知を受信するデバイスのデバイス インスタンス ID を入力する必要があります。
Reserved
0 に設定されます。
u
通知を受信するデバイスに関する情報を含む共用体。
u.DeviceInterface
u.DeviceInterface.ClassGuid
通知を受信するデバイス インターフェイス クラスの GUID。
u.DeviceHandle
通知を受信するデバイスへのハンドル。
u.DeviceHandle.hTarget
u.DeviceInstance
通知を受信するデバイスのデバイス インスタンス ID。
u.DeviceInstance.InstanceId[MAX_DEVICE_ID_LEN]
注釈
ドライバーは、CM_Register_Notification関数を呼び出すときに、pFilter パラメーターのCM_NOTIFY_FILTER構造体へのポインターを提供します。
要件
要件 | 値 |
---|---|
Header | cfgmgr32.h |