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 |