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
註冊裝置介面事件的通知。 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> 應該填入要接收通知之裝置的裝置實例標識符。
Reserved
設定為 0。
u
聯集,其中包含接收通知之裝置的相關信息。
u.DeviceInterface
u.DeviceInterface.ClassGuid
要接收通知之裝置介面類別的 GUID。
u.DeviceHandle
要接收通知之裝置的句柄。
u.DeviceHandle.hTarget
u.DeviceInstance
要接收通知之裝置的裝置實例標識碼。
u.DeviceInstance.InstanceId[MAX_DEVICE_ID_LEN]
備註
當驅動程式呼叫 CM_Register_Notification 函式時,它會提供 pFilter 參數中CM_NOTIFY_FILTER結構的指標。
規格需求
需求 | 值 |
---|---|
標頭 | cfgmgr32.h |