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

另請參閱

CM_NOTIFY_ACTION

CM_Register_Notification