Поделиться через


структура 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> должна быть нулевой. Не используйте этот флаг с 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 , он предоставляет указатель на структуру CM_NOTIFY_FILTER в параметре pFilter .

Требования

Требование Значение
Заголовок cfgmgr32.h

См. также раздел

CM_NOTIFY_ACTION

CM_Register_Notification