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
以下标志的零个或多个组合:
CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES
注册以接收所有设备接口类的 PnP 事件的通知。 pFilter-u.DeviceInterface.ClassGuid> 的内存必须为零。 请勿将此标志用于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
注册设备接口事件的通知。 应使用要接收通知的设备接口类的 GUID 填充 pFilter-u.DeviceInterface.ClassGuid>。
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE
注册设备句柄事件的通知。 pFilter-u.DeviceHandle.hTarget> 必须使用要接收通知的设备句柄填充。 此句柄在 CM_Register_Notification 调用期间必须保持设备的有效句柄。 但是,CM_Register_Notification返回后,可以关闭句柄,而不会影响注册接收通知的能力。
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE
注册设备实例事件的通知。 应使用要接收通知的设备的设备实例 ID 填充 pFilter-u.DeviceInstance.InstanceId>。
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 |