Freigeben über


CM_NOTIFY_FILTER-Struktur (cfgmgr32.h)

Struktur des Gerätebenachrichtigungsfilters

Syntax

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;

Member

cbSize

Die Größe der Struktur.

Flags

Eine Kombination aus null oder mehr der folgenden Flags:

CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES

Registrieren Sie sich, um Benachrichtigungen für PnP-Ereignisse für alle Geräteschnittstellenklassen zu erhalten. Der Arbeitsspeicher bei pFilter-u.DeviceInterface.ClassGuid> muss Nullen aufweisen. Verwenden Sie dieses Flag nicht mit CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCES. Dieses Flag ist nur gültig, wenn pFilter-FilterType> CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE ist.

CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCES

Registrieren Sie sich, um Benachrichtigungen für PnP-Ereignisse für alle Geräte zu erhalten. pFilter-u.DeviceInstance.InstanceId> muss eine leere Zeichenfolge sein. Verwenden Sie dieses Flag nicht mit CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES. Dieses Flag ist nur gültig, wenn pFilter-FilterType> CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE ist.

FilterType

Dies muss einer der folgenden Werte sein:

CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE

Registrieren Sie sich für Benachrichtigungen für Geräteschnittstellenereignisse. pFilter-u.DeviceInterface.ClassGuid> sollte mit der GUID der Geräteschnittstellenklasse ausgefüllt werden, für die Benachrichtigungen empfangen werden sollen.

CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE

Registrieren Sie sich für Benachrichtigungen für Gerätehandleereignisse. pFilter-u.DeviceHandle.hTarget> muss mit einem Handle für das Gerät ausgefüllt werden, für das Benachrichtigungen empfangen werden können. Dieses Handle muss für die Dauer des CM_Register_Notification Anrufs ein gültiges Handle für das Gerät bleiben. Nachdem CM_Register_Notification zurückgegeben wurde, kann das Handle jedoch geschlossen werden, ohne dass die Registrierung Benachrichtigungen empfangen kann.

CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE

Registrieren Sie sich für Benachrichtigungen für Geräteereignisse instance. pFilter-u.DeviceInstance.InstanceId> sollte mit dem Gerät instance ID des Geräts ausgefüllt werden, für das Benachrichtigungen empfangen werden sollen.

Reserved

Auf 0 festlegen.

u

Eine Union, die Informationen über das Gerät enthält, für das Benachrichtigungen empfangen werden sollen.

u.DeviceInterface

u.DeviceInterface.ClassGuid

Die GUID der Geräteschnittstellenklasse, für die Benachrichtigungen empfangen werden sollen.

u.DeviceHandle

Ein Handle für das Gerät, für das Benachrichtigungen empfangen werden sollen.

u.DeviceHandle.hTarget

u.DeviceInstance

Das Gerät instance-ID für das Gerät, für das Benachrichtigungen empfangen werden sollen.

u.DeviceInstance.InstanceId[MAX_DEVICE_ID_LEN]

Hinweise

Wenn der Treiber die CM_Register_Notification-Funktion aufruft, stellt er einen Zeiger auf eine CM_NOTIFY_FILTER Struktur im pFilter-Parameter bereit.

Anforderungen

Anforderung Wert
Header cfgmgr32.h

Weitere Informationen

CM_NOTIFY_ACTION

CM_Register_Notification